1

我有以下正则表达式可用于 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
4

2 回答 2

2

任何一个

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

要不就

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

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

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

于 2012-06-03T09:15:56.477 回答
1

试试这个模式

\b[0-9]{9}[0-9Xx]\b
于 2012-06-03T09:27:18.667 回答