Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多行python上的正则表达式_Python_Regex - Fatal编程技术网

多行python上的正则表达式

多行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

我有一个字符串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

您不需要在字符类中放入单个字符,也不需要双重转义
\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)