我正在尝试进行搜索的另一个RegEx问题。
问题:确定用户输入是否为13位数字(仅限数字),以52,56或57结尾。
我目前无效的解决方案:[0-9]52|56|57${13}
。我也试过[0-9]52|56|57{13}$
,但没有骰子。
非常感谢帮助。
答案 0 :(得分:4)
试试这个正则表达式:
^[0-9]{11}(52|56|57)$
这就是它的含义:
^ Start of string [0-9] Any character in 0-9 {11} The previous token must match exactly 11 times. (52|56|57) Alternation - any one of the possibilities must match $ End of string
在这种情况下,您也可以将其简化为:
^[0-9]{11}5[267]$
答案 1 :(得分:2)
你有13位数11其中可以是任何数字,接下来的两位必须是52,56或57.正则表达式中的11位数字类似于\d{11}
。 '或'运算符由符号|
表示,因此52 or 56 or 57
变为52|56|57
。生成的正则表达式看起来像\d{11}(52|56|57)
。括号用于消除歧义。
请记住,您可以从更简单的表达式构造复杂的正则表达式。这种方法总能起作用;)