对于这些字符串,我想提取所有b。
'aaaabbbbcccc' => bbbb
'aaaaaaaabbbbbbbcccccc' => bbbbbbb
'abc' => b
'aaaab' => b
'bc' => b
我尝试过这样的事情:
re.search(r'a*(\w+)c*','aaaabbbbcccc').groups() => ('bbbbccc',)
答案 0 :(得分:0)
使用否定的字符类。 [^ac]
匹配任何字符,但不匹配a
或c
>>> 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)