【发布时间】:2021-04-07 13:49:06
【问题描述】:
import re
test = '''starterword
relevant info 1
relevant info 3
relevant info 2
endword
lots of irrelevant stuff
starterword
relevant info 8
relevant info 7
relevant info 4
endword
lots of irrelevant stuff
starterword
relevant info 420
relevant info 90
relevant info lol
endword
'''
pattern = re.split('/^starterword(.*?) \^endword/',test,flags=re.MULTILINE)#|re.DOTALL)
print(pattern )
print(len(pattern ))
我有一个巨大的多行字符串,我需要一些信息。 我想用 RegEx 删除所有不相关的东西,但我尝试的一切都没有奏效。大多数情况下,一个包含相关信息的列表项中包含不相关的内容。
任何帮助将不胜感激!
【问题讨论】:
-
re.findall('^starterword\n(.*?)\nendword$',test, flags=re.MULTILINE|re.DOTALL) -
@WiktorStribiżew 正则表达式的
(.*?)部分不起作用,因为“相关信息”部分有换行符。我使用([\w\s]+?)来解决这个问题,但想知道你是否知道更好的解决方法。 -
.和re.DOTALL匹配任何字符,包括换行符。