【发布时间】:2012-03-23 04:48:40
【问题描述】:
我正在尝试进行的搜索的另一个 RegEx 问题。
问题:确定用户输入的长度是否为 13 位(仅限数字)并以 52,56 或 57 结尾。
我目前不工作的解决方案:[0-9]52|56|57${13}。我也试过[0-9]52|56|57{13}$,但没有骰子。
感谢您的帮助。
【问题讨论】:
标签: regex
我正在尝试进行的搜索的另一个 RegEx 问题。
问题:确定用户输入的长度是否为 13 位(仅限数字)并以 52,56 或 57 结尾。
我目前不工作的解决方案:[0-9]52|56|57${13}。我也试过[0-9]52|56|57{13}$,但没有骰子。
感谢您的帮助。
【问题讨论】:
标签: regex
试试这个正则表达式:
^[0-9]{11}(52|56|57)$
这就是它的意思:
^ 字符串开头 [0-9] 0-9 中的任意字符 {11} 前一个令牌必须精确匹配 11 次。 (52|56|57) 交替 - 任何一种可能性都必须匹配 $ 字符串结尾在这种情况下,您也可以将其简化为:
^[0-9]{11}5[267]$
【讨论】:
您有 13 位数字,其中 11 位可以是任意数字,接下来的两位必须是 52,56 或 57。正则表达式中的 11 位数字类似于 \d{11}。 “或”运算符由符号| 表示,因此52 or 56 or 57 变为52|56|57。生成的正则表达式看起来像\d{11}(52|56|57)。括号用于消除歧义。
请记住,您可以从简单的正则表达式构造复杂的正则表达式。这种方法总是有效的;)
【讨论】: