python - 多行正则表达式 python

标签 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

等等。这些指示下一个文本段。我尝试了这个正则表达式

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*

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

关于python - 多行正则表达式 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25481229/

相关文章:

python - 新的 Django 应用程序中没有 admin.py 文件

python - Pyramid 项目内的外部 iFrame。更新后没有刷新

python - 将包含元组的列表转换为字符串

regex - shell 脚本。如何使用正则表达式提取字符串

python - 语法:python smtplib 在脚本中不起作用

python - 查询非 None

Java Json String 提取数字并替换特定文本

javascript - 如何使用 Javascript 修改节点的内容?

python - python 中文本的 n 元语法

javascript - 比较两个数组并在正则表达式后返回唯一值