gpt4 book ai didi

python - 每三个新行用标识符匹配和替换哪个最有效?

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

我正在处理一些没有结构的 .txt 文件(它们很乱),它们代表许多页面。为了给它们一些结构,我想确定页数,因为文件本身没有它们。这可以通过用一些注释替换每三个换行符来完成,例如:

\n
page: N
\n

其中 N 是数字。这就是我的文件的样子,我也尝试了一个简单的 replace .但是,此函数使我感到困惑并且没有给我预期的格式,类似于 this。 .知道如何用某种标识符替换空格,只是为了尝试解析它们并获取某些信息(页面)的位置吗?

我也试过这个:

导入报告

replaced = re.sub('\b(\s+\t+)\b', '\n\n\n', text)
print (replaced)

最佳答案

如果格式像您在问题描述中所说的那样规则:

Replace every occurrence of three newlines \n with page: N

您不必使用 re 模块。像下面这样简单的事情就可以解决问题:

>>> s='aaaaaaaaaaaaaaaaa\n\n\nbbbbbbbbbbbbbbbbbbbbbbb\n\n\nccccccccccccccccccccccc'
>>> pages = s.split('\n\n\n')
>>> ''.join(page + '\n\tpage: {}\n'.format(i + 1) for i, page in enumerate(pages))
'aaaaaaaaaaaaaaaaa\n\tpage: 1\nbbbbbbbbbbbbbbbbbbbbbbb\n\tpage: 2\nccccccccccccccccccccccc\n\tpage: 3\n'

不过,我怀疑您的格式不那么规则,但您必须包含更多详细信息,然后我才能给出一个好的答案。

如果你想用乱七八糟的空格(我将其定义为 至少 三个换行符和任何其他空格混合)进行拆分,你可以替换 s.split('\n\n\n') 与:

re.split(r'(?:\n\s*?){3,}', s)

关于python - 每三个新行用标识符匹配和替换哪个最有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39981438/

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