正则表达式错误 ISBN 10


Regex error ISBN 10

我有以下正则表达式用于 ISBN-10

^[0-9]{9}[[0-9]|X|x]$^

它似乎适用于所有数字,但是当引入字母时,它会给我字母,例如 ISBN 047146158X 在数组中返回 X,

有人可以帮助我表达吗?

这是数据的样子

startISBN 10-047146158X Author(s): Stephen R. Bolsover, Jeremy S. Hyams, Elizabeth A. Shephard, Hugh A. White, Claudia G. Wiedemann Publisher- Wiley 27 JAN 2004

[0-9]{9}([0-9]|X|x)

或者只是

[0-9]{9}[0-9Xx]

[]括号匹配其中的单个字符,嵌套它们不会执行您想要的效果。 括号()标记一个组,您可以在其中使用|字符来分隔不同的选项,但是由于您只查找一个字符,因此您可以将所有内容放在括号中。

^ 表示"行首",$ 表示"行尾" - 如果您在开头和末尾都有它们,则正则表达式仅在输入中没有其他内容时才匹配。

试试这个模式

'b[0-9]{9}[0-9Xx]'b