我尝试创建一个允许所有数字的正则表达式(PHP),并且只允许使用带有[数字 - 数字]格式的封闭括号表示exp。
0[1-3]xxx xx //valid
[1-3]xxx xx //valid
05[1-3]xxx xx //valid
0[1-3]555 6789 //valid
0332 555 6789 //valid
0[1-11]xxx xx //not valid
[1-3]xxxa xx //not valid
我的正则表达式模式[0-9]?\[[0-9]-[0-9]\][0-9 x]+
验证了以下内容:
[0-5]212xxx xx xx
[0-5]212xx xx xx
[0-5]212xx xx xx
...但它不验证此字符串:
1231232131
完全改变正则表达式或编辑正则表达式但似乎变得复杂。如何以最有效的方式实现我的目标?
答案 0 :(得分:2)
此模式测试该字符串包含数字,构造[digit-digit]
,空格和字符x
^(\d|\[\d-\d\]|x| )+$
或者您可以这样写:
^([\dx ]|\[\d-\d\])+$