我必须找到仅由字母’a’和’b’组成的所有字符串,并且’a’的每个实例后面紧跟’b’并且紧跟在’b’之后.
例如:
mystring = 'bab babab babbab ab baba aba xyz'
然后我的正则表达式应该返回:
['bab' 'babab' 'babbab']
(在字符串’ab’中 – ‘a’前面没有’b’.类似地’aba’和’xyz’不仅仅是’a’,’b’.)
我使用了lookahead为此写了这个正则表达式:
re.findall(r'((?<=b)a(?=b))',mystring)
但这只会让我回复所有’a’的实例,这些实例后跟/前面跟’b’,如:
['a','a','a']
但我需要完整的话.如何使用正则表达式找到整个单词?我尝试用各种选项修改我的正则表达式,但似乎没有任何效果.如何才能做到这一点?
最佳答案
您可以使用以下正则表达式:
>>> re.findall(r'\b(?:b+a)+b+\b',mystring)
['bab','babab','babbab']
正如您在前面的图表中所看到的,这个正则表达式将匹配ba的任何组合(其中b可以呈现多于一次),其产生每个先于b的单词然后整个字符串可以跟随一个或多个b.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。