如何使用python3中的re模块匹配aaabbbccc中的abbbc?

2024-09-30 14:18:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我在字符串匹配方面有问题。这与在aaabbbccc中匹配abbbc很相似,注意在aaa和ccc之间有不确定的字符数,我应该在其中匹配abbbc,只有一个a和一个c。我试图使用'a[\d\d]+?但是失败了,如果我坚持用'a@@@c'的格式来实现这个,怎么写呢?或者有其他正则表达式来实现它吗?你知道吗

>>> import re

>>> string = 'aaabbbccc'
>>> res = re.findall(r'a[\d\D]+?c', string)
>>> print(res)
['aaabbbc']

Tags: 字符串importrestring格式res字符print
2条回答

嗯,a(.)\1\1c是一个更具体的a...c,它要求所有三个点都是同一个字符。两者都将匹配aaabbbccc中的abbbc。但是第一个不匹配aaabbdccc中的任何内容,而第二个匹配abbdc。你知道吗

您可以通过将“一个或多个任意项”[\d\D]+?拆分为“非a”然后“零个或多个任意项”[^a][\d\D]*?来阻止中间部分从a开始。你知道吗

相关问题 更多 >