小编典典

匹配 A = * 之前的换行符

all

我有一个具有以下模式的文件:

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.*)

阅读 71

收藏
2022-07-30

共1个答案

小编典典

我认为您正在尝试将字符串拆分为 ABC 组。寻找\n具有前瞻 = ‘A’ 的 a

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()来获取匹配对象。

2022-07-30