我是regex的新手,为了解决问题,我正在花费大量时间。我需要允许这些模式
NPA-XXX-XXXX
(NPA) XXX-XXXX
NPAXXXXXXX
其中NPA =数字0到9 X也是0到9的任何数字
所以这是有效的
123-456-7890
1234567890
(123) 456-7890
但不是这个
(123)-456-7890 // because there is a dash after closing parenthesis
(123)456-7890 // because there is no space after closing parenthesis
QWE-456-7890 // because there are one or more alpha characters
我用这个
Regex r = new Regex(@"^?\(?\d{3}?\)??-??\(?\d{3}?\)??_??\(?\d{4}?\)??-?$");
来自System.Text.RegularExpressions
与有效值匹配的正则表达式是什么?
答案 0 :(得分:0)
一种查看方式:
XXX-XXXX
结尾,其中-
是可选的,因此为d{3}\-?\d{4}
(NPA)
或NPA-
开头,-
是可选的,因此\(\d{3}\)
(以空格结尾)或\d{3}
由于您可以与(a|b)
一起使用“或”部分正则表达式,因此整个正则表达式将变为:
(\(\d{3}\) |\d{3}\-?)\d{3}\-?\d{4}
请注意,\(
省略了括号,因此它不是正则表达式语言的一部分,而是您要匹配的实际字符。