415-555-1234
650-555-2345
(416)555-3456
202 555 4567
4035555678个
1 416 555 9292
对于我的正则表达式课程,我正在尝试捕获上述数字的区号。 现在我的下面的表达式匹配所有数字,但我的第一对括号没有捕获任何数据。
1?\s?\\(?(\d{3})\s?-?\\)?(\d{3})\s?-?(\d{4})
我是否以某种方式将它们转换为非捕获组?怎么解决?
RegexOne.com就跑掉了,让我独自一人。
答案 0 :(得分:0)
使用[(]
和[)]
来避免反斜杠和可能的双反斜杠(因为转义)并检查这是否可以解决您的问题。
否则你的正则表达式看起来没问题,(\d{3})
应匹配并捕获前3位数字。
在问题中,请指出您使用的主机编程语言。可能存在反斜杠逃避与语言相关的问题。一般的经验法则是在例如Perl,Ruby,JavaScript中使用单个反斜杠(\(
和\d
)或在例如中使用双反斜杠(\\(
和\\d
Java和C ++)在你的正则表达式中始终如一。
答案 1 :(得分:0)
此正则表达式适用于http://regexone.com/example/1
1?\s?\(?(\d{3})\s?-?\)?\d{3}\s?-?\d{4}
我做了什么来解决它。