2024-05-27 11:17:41 发布
网友
我需要一个结构,可以归结为:“至少出现1次(子串)a,然后出现相同数量的(子串)b”。 所以“ab”、“aaabbb”和“AAAAA BBBBB”被接受, “aab”或“aaabbb”不是
我发现如果出现的次数是固定的(比如说5次),我可以使用 re.compile("a{5}b{5}") ,但我不知道发生的次数。我只需要他们平等。 我试过了,但我想那是一厢情愿
re.compile("a{5}b{5}")
内置的re不支持所有格量词/原子组,也不支持递归或平衡组,所有这些功能都可以帮助您构建此模式
re
因此,最简单的解决方案是使用pip install regex安装PyPi regex库,然后使用How can we match a^n b^n?解决方案
pip install regex
否则,加入一些Python代码和一个简单的(a+)(b+)正则表达式:
(a+)(b+)
import re texts = [ "ab", "aaabbb", "aaaaabbbbb", "aab", "aaabbbb" ] for text in texts: match = re.fullmatch(r'(a+)(b+)', text) if len(match.group(1)) == len(match.group(2)): print( text, '- MATCH' ) else: print( text, '- NO MATCH' )
见this demo
ab - MATCH aaabbb - MATCH aaaaabbbbb - MATCH aab - NO MATCH aaabbbb - NO MATCH
注:
re.fullmatch(r'(a+)(b+)', text)
a
b
if len(match.group(1)) == len(match.group(2)):
内置的
re
不支持所有格量词/原子组,也不支持递归或平衡组,所有这些功能都可以帮助您构建此模式因此,最简单的解决方案是使用
pip install regex
安装PyPi regex库,然后使用How can we match a^n b^n?解决方案否则,加入一些Python代码和一个简单的
(a+)(b+)
正则表达式:见this demo
注:
re.fullmatch(r'(a+)(b+)', text)
匹配只包含一个或多个a
然后是一个或多个b
的整个字符串if len(match.group(1)) == len(match.group(2)):
正在检查a
和b
的长度,并且只传递计数相等的字符串李>相关问题 更多 >
编程相关推荐