gpt4 book ai didi

python - 当字符串很长时,如何删除Python中一对子字符串之间的文本

转载 作者:行者123 更新时间:2023-12-01 04:34:30 25 4
gpt4 key购买 nike

我正在解析 HTML 页面,并希望删除“<!DOCTYPE html>”和“count green”之间的所有文本。例如,如果文本文件 (TestFile.txt) 中的字符串是

<!DOCTYPE html>FOOBAR count green

我想返回

<!DOCTYPE html> count green

我的代码是

import re

# open text file
with open ("TestFile.txt", "r") as myfile:
data=myfile.read().replace('\n', '')

# find text at start to replace
removeStartCompile = re.compile('<!DOCTYPE html>(.*?)count green')
removeStartSearch = removeStartCompile.search(data)
removeStart = removeStartSearch.group(1)

data = re.sub(removeStart,"",data)
print (data)

这是一个示例,它可以工作。然而,当我将文本文件扩展为完整的 html 代码时(你可以想象它会变得相当大),我最终尝试解析大约 300,000 个字符,并且得到了错误的字符范围错误。

大家有什么想法吗?

最佳答案

您可以尝试使用 Python 的 stdlib 字符串函数,而不是使用正则表达式:

starttext = "<!DOCTYPE html>"
endtext = "count green"

start = data.index(starttext) + len(starttext)
end = data.index(endtext)

output = data[:start] + data[end:]

关于python - 当字符串很长时,如何删除Python中一对子字符串之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31954223/

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