0

我正在尝试使用正则表达式验证特定字符串,但是我丢失了第一个字符。

字符串是 (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
4

1 回答 1

2

尝试在 first 之前转义第二个“(”,不是第一个,而是最后一个“)” ?

现场演示:http ://refiddle.com/6bs

于 2012-09-20T12:51:03.290 回答