多行python上的正则表达式

时间:2014-08-25 07:44:26

标签: python regex

我有一个包含多行文本的String Alltext

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

2 个答案:

答案 0 :(得分:1)

你不需要在角色类中放置一个角色,也不需要双重逃避\s

a*\s*D[0-9]*\s*a*\s*

DEMO

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

答案 1 :(得分:1)

 print re.findall(r"^text.*$",x,re.M)

Simle findall也应该这样做。