RegEx帮助(13位长度,以特定数字结尾)

时间:2012-03-22 20:40:29

标签: regex

我正在尝试进行搜索的另一个RegEx问题。

问题:确定用户输入是否为13位数字(仅限数字),以52,56或57结尾。

我目前无效的解决方案[0-9]52|56|57${13}。我也试过[0-9]52|56|57{13}$,但没有骰子。

非常感谢帮助。

2 个答案:

答案 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)。括号用于消除歧义。

请记住,您可以从更简单的表达式构造复杂的正则表达式。这种方法总能起作用;)