我有一个字符串 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
关于python - 多行正则表达式 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25481229/