gpt4 book ai didi

python - 删除匹配分隔符之间的单词/行

转载 作者:太空宇宙 更新时间:2023-11-04 09:07:16 25 4
gpt4 key购买 nike

如何删除 startend 之间的行,包括那些匹配的词。

line1
line2
start
line3
line4
line5
line6
end
line7
line8

我期望的结果是:-

line1
line2
line7
line8

我尝试了以下代码,但似乎没有任何效果。

text = "line1\nline2\nstart\nline3\nline4\nline5\nline6\nend\nline7\nline8"
print re.sub(r'start(.*)end', '', text)

最佳答案

您必须使用修饰符 re.DOTALL 来使 (.*) 匹配换行符:

re.sub(r'start(.*)end', '',  text, flags=re.DOTALL)

然后,我认为使用惰性 (.*?) 更安全,以防万一您有类似的东西:

line1\nstart\nline2\nline3\nend\nline4\nline5\nstart\nline6\nend\nline7

如果没有 (.*?) 将删除从第一个 start 到最后一个 end 的所有内容,包括不在 之间的部分开始结束在中间:

re.sub(r'start.*?end', '',  text, flags=re.DOTALL)

最后,我删除了括号,因为这里实际上不需要它们。

如果你想删除所有留下的空白,使用 \s* 来修剪它们:

re.sub(r'start.*?end\s*', '',  text, flags=re.DOTALL)

关于python - 删除匹配分隔符之间的单词/行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19197757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com