Python正则表达式 - 如何检测重复

时间:2015-01-28 23:00:59

标签: python regex

对于这些字符串,我想提取所有b。

'aaaabbbbcccc' => bbbb
'aaaaaaaabbbbbbbcccccc' => bbbbbbb
'abc' => b
'aaaab' => b
'bc' => b

我尝试过这样的事情:

re.search(r'a*(\w+)c*','aaaabbbbcccc').groups() => ('bbbbccc',)

2 个答案:

答案 0 :(得分:0)

使用否定的字符类。 [^ac]匹配任何字符,但不匹配ac

>>> re.search(r'a*([^ac]+)c*','aaaabbbbcccc').group(1)
'bbbb'
>>> re.search(r'a*([^ac]+)c*','aaaaaaaabbbbbbbcccccc').group(1)
'bbbbbbb'
>>> re.search(r'a*([^ac]+)c*','abc').group(1)
'b'
>>> re.search(r'a*([^ac]+)c*','aaaab').group(1)
'b'
>>> re.search(r'a*([^ac]+)c*','bc').group(1)
'b'

答案 1 :(得分:0)

您只需使用[b]*但在分组中,但请注意您需要group(1)

>>> re.search(r'a*([b]+)c*','aabbbbbbbaa').group(1)