如何在Python中修改正则表达式匹配AAA后的非A字符?
问题:修改正则表达式匹配AAA后的非A字符
现有Python代码如下:
def append_letter(): string = 'ACAABAACAAABACDBADDDFSDDDFFSSSASDAFAAACBAAAFASD' result = [] # complete the pattern below pattern = r'(?<=AAA)\w+' for item in re.finditer(pattern, string): # identify the group number below. result.append(item.group(1)) return result
需求:原本希望匹配AAA之后的所有字符(包括A),现在需要仅修改pattern = r'(?<=AAA)\w+'这一行代码,实现匹配AAA之后的非A字符并添加到列表中。
解决方案
将pattern修改为:
pattern = r'(?<=AAA)([^A]+)'
解释:
(?<=AAA):保留原有的正向肯定后行断言,确保匹配位置的前面是连续的AAA。([^A]+):[^A]是反向字符集,代表匹配除A之外的任意单个字符;+限定符表示匹配一次或多次这类非A字符,括号将这部分内容设为捕获分组,适配原代码中item.group(1)的调用逻辑。
如果不需要适配分组调用,仅需匹配非A字符的最简写法是:
pattern = r'(?<=AAA)[^A]+'
内容的提问来源于stack exchange,提问作者Kuth
相关产品推荐
相关产品推荐

