我有一个看起来像这样的正则表达式
((1010xxx)?(\d{11}|\d{10}|\d{7})+)
基本上我希望它匹配
8085551234
5551234个
10102338085551234
它应该失败 1010233
这更适用于在xsd上进行验证而不是在实际匹配器上进行验证。
PS。 我试图将美国7到11位数的电话号码与前面的可选1010xxx相匹配。如果它是1010xxx它也不应该通过。 xxx是任意3位数。
答案 0 :(得分:2)
如果您只想确保它是一个7,10或11位数字符串,请确保如果它只有7位数字,则不以“1010”开头,您可以在使用之前使用否定先行断言匹配\d{7}
,即:
((\d{11}|\d{10}|(?!1010)\d{7})+)