在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  Python/ python正則表達式,匹配多行文本

python正則表達式,匹配多行文本

代碼如下

import re
str='''
1
2
3
1
2
3
4
1
2
3
4
5
1
'''
pattern=re.compile(r'(^1\n)(^(?!1)\d.*\n)',flags=re.M)
match=pattern.findall(str)
print(match)

打印結(jié)果:[('1\n', '3\n'), ('1\n', '4\n'), ('1\n', '5\n'), ('1\n', '')]

想要打印出[('1\n', '2\n3\n'), ('1\n', '2\n3\n4\n'), ('1\n', '2\n3\n4\n5\n'), ('1\n')]
或者[('1\n', '2\n','3\n'), ('1\n', '2\n','3\n','4\n'), ('1\n', '2\n','3\n','4\n','5\n'), ('1\n')]
我應(yīng)該怎么寫正則表達式,

我寫出的最接近的也是pattern=re.compile(r'(^1\n)((^(?!1)\d.*\n)*)',flags=re.M)
結(jié)果是[('1\n', '2\n3\n', '3\n'), ('1\n', '2\n3\n4\n', '4\n'), ('1\n', '2\n3\n5\n', '5\n'), ('1\n', '', '')]
請大神指導(dǎo)一下

回答
編輯回答
囍槑
>>> import re
>>> s='''
1
2
3
1
2
3
4
1
2
3
4
5
1
'''
>>> re.findall(r'1[^1]*',s)
['1\n2\n3\n', '1\n2\n3\n4\n', '1\n2\n3\n4\n5\n', '1\n']

#或者
>>> re.findall(r'(1\n)([^1]*)',s)
[('1\n', '2\n3\n'), ('1\n', '2\n3\n4\n'), ('1\n', '2\n3\n4\n5\n'), ('1\n', '')]
2017年2月23日 13:32
編輯回答
痞性
import re

s = '''
1
2
3
1
2
3
4
1
2
3
4
5
1
'''

result = re.findall('1\n[^1]*', s)
2017年8月11日 16:40
編輯回答
慢半拍
import re
str='''
1
2
3
1
2
3
4
1
2
3
4
5
1
'''
pattern=re.compile(r'(^1\n)([2-9\n]*)',flags=re.M)
match=pattern.findall(str)
print(match)
2018年4月23日 12:55