我有一个具有以下模式的文件:
A = 1 B = 2 C = 3 A = 10 B = 20 C = 30
我想只匹配 A = * 之前的换行符
我的尝试也将匹配 A = * 以及换行符
代码:
[\r\n]+.*A.*
但我只需要单独换行。我也明白第一个 A 会被牺牲,因为它上面没有类似的东西。
是否可以使用lookbehind?
编辑:我的尝试有效,但留下 2 个组,我只能访问第 2 组。我希望仅在 1 个组中完成此操作
([.*\r\n])(.*A.*)
我认为您正在尝试将字符串拆分为 ABC 组。寻找\n具有前瞻 = ‘A’ 的 a
\n
text = """\ A = 1 B = 2 C = 3 A = 10 B = 20 C = 30 """ re.split(r"\n(?=A)", text)
回报:
['A = 1\nB = 2\nC = 3', 'A = 10\nB = 20\nC = 30\n']
如果您想要实际的换行符,请使用与re.search()or相同的模式re.finditer()来获取匹配对象。
re.search()
re.finditer()