输入如下
MY_PROJ10
1st line
2nd line
MY_PROJ11
3rd line
4th line
----------
使用正则表达式我想捕获
result [0]
Group 0 MY_PROJ10
Group 1
1st line
2nd line
result [1]
Group 0 MY_PROJ11
Group 1
3rd line
4th line
我的第一个问题是
regex = r" ^(MY_PROJ。+)([\ s \ S] +)"
然后做多行
但是这会捕获 MY_PROJ10 之后的所有以下行
我确信在正则表达式中可以这样做。
我正在尝试使用regex101.com而不是运气
答案 0 :(得分:0)
您可以使用(?m)^(MY_PROJ.*)([\s\S]*?)(?=[\n\r]MY_PROJ|\Z)
:
In [2]: s = """
...: MY_PROJ10
...: 1st line
...: 2nd line
...:
...: MY_PROJ11
...: 3rd line
...: 4th line
...: """
In [3]: re.findall(r'(?m)^(MY_PROJ.*)([\s\S]*?)(?=[\n\r]MY_PROJ|\Z)', s)
Out[3]:
[('MY_PROJ10', '\n1st line \n2nd line \n'),
('MY_PROJ11', '\n3rd line \n4th line\n')]
答案 1 :(得分:0)