我有以下正则表达式用于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 :(得分:2)
要么
[0-9]{9}([0-9]|X|x)
或只是
[0-9]{9}[0-9Xx]
[]
括号与其中的单个字符匹配,嵌套它们并不能达到您想要的效果。括号()
标记一个组,您可以使用|
字符分隔不同的选项,但由于您只查找一个字符,因此您可以将所有内容放在括号中。
^
表示“行首”,$
表示“行尾” - 如果您在开头和结尾都有,那么正则表达式只匹配 如果输入中没有其他内容。
答案 1 :(得分:1)
尝试这种模式
\b[0-9]{9}[0-9Xx]\b