多行python上的正则表达式
我有一个字符串Alltext,它包含跨多行的文本多行python上的正则表达式,python,regex,Python,Regex,我有一个字符串Alltext,它包含跨多行的文本 aaaaa D0 aaaaa text0........... aaaaa D1 aaaaa text 1 .......... aaaaa D2 aaaaa text 2 我只想保留文本部分,即text0…,text1,text2。。。。并移除指示灯 aaaaa D0 aaaaa, aaaaa D1 aaaaa
aaaaa
D0
aaaaa
text0...........
aaaaa
D1
aaaaa
text 1 ..........
aaaaa
D2
aaaaa
text 2
我只想保留文本部分,即text0…,text1,text2。。。。并移除指示灯
aaaaa
D0
aaaaa,
aaaaa
D1
aaaaa
以此类推。这些表示下一个文本段。我试过这个正则表达式
re.sub("[a]* \sD[0-9]*\\s[a] * ", " ",Alltext)
但这只是删除了D0,D1,而不是aaaa
我得到的输出
aaaaa
aaaaa
text0
aaaaa
aaaaa
text1
如何删除这些aaaaa您不需要在字符类中放入单个字符,也不需要双重转义
\s
a*\s*D[0-9]*\s*a*\s*
Python代码应该是
>>> import re
>>> s = """aaaaa
D0
aaaaa
text0...........
aaaaa
D1
aaaaa
text 1 ..........
aaaaa
D2
aaaaa
text 2 """
>>> m = re.sub(r'a*\s*D[0-9]*\s*a*\s*', r'', s)
>>> m
'text0...........\n\n\ntext 1 ..........\n\n\ntext 2 '
>>> print m
text0...........
text 1 ..........
text 2
Simle findall也应该这样做
print re.findall(r"^text.*$",x,re.M)