正则表达式帮助(13长度数字,以特定数字结尾)
问题描述:
另一个正在尝试执行搜索的正则表达式问题。正则表达式帮助(13长度数字,以特定数字结尾)
的问题:确定是否用户输入是13位长(只有数字),并与端部52,56,或57。
我的当前未工作溶液:[0-9]52|56|57${13}
。我也尝试[0-9]52|56|57{13}$
,但没有骰子。
帮助表示赞赏。
答
试试这个正则表达式:
^[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]$
答
你有13位其中11个可以是任何数字,接下来的两个数字必须是52,56或57.正则表达式中的11个数字是l ike \d{11}
。 '或'操作符由符号|
表示,所以52 or 56 or 57
变为52|56|57
。得到的正则表达式看起来像\d{11}(52|56|57)
。括号用于消除歧义。
请记住,您可以从更简单的构造复杂的正则表达式。此方法始终有效;)