我试图用正则表达式验证一个特定的字符串,但是我丢失了第一个字符。
字符串是(06)12345678
我的正则表达式是
r'\b\((0[34679]{1})\)?([\- ]{0,1})[0-9]{3,4}([\- ]{0,1})[0-9]{3,5}'
但我在比赛中得到的只有
06)12345678
我真的想先(也)。
(和)是有条件的,因为有时候不会有()。但是单词边界的存在是为了防止
hello123456789
匹配
regex = r'\b\(?(0[34679]{1})\)?([\- ]{0,1})[0-9]{3,4}([\- ]{0,1})[0-9]{3,5}'
matches = re.finditer(regex, '(06)12345678)')
for match in matches:
print match.group(0)
有什么想法吗
--例子--
(06)12345678 should match, (06)12345678
06 12345678 should match, 06 12345678
1234567890 should match, 1234567890
=12345678 no match
1条答案
按热度按时间6ojccjat1#
尝试转义第一个
?
之前的第二个“(“,不是第一个,而是最后一个“)”。现场演示:https://regex101.com/r/5h3FBr/1