gpt4 book ai didi

python - 使用正则表达式分组将字符串转换为字典

转载 作者:行者123 更新时间:2023-12-01 02:35:20 25 4
gpt4 key购买 nike

我有许多格式如下的 txt 文件 -

\n==== Intro \n text \n text \n==== Body \n text \n text \n==== Refs \n test \n text

我想将这些放入字典中,如下所示 -

{'Intro': '\n text \n text \n', 
'Body': '\n text \n text',
'Refs': '\n test \n text'}

我担心处理所有 txt 文件所需的时间,因此想要一种花费尽可能少时间的方法,并且我不关心将文本拆分成行。

我正在尝试使用正则表达式,但正在努力使其正常工作 - 我认为我的最后一个正则表达式组不正确。以下是我目前拥有的。任何建议都会很棒。

pattern = r"(====.)(.+?\b)(.*)"
matches = re.findall(pattern, data, re.DOTALL)
my_dict = {b:c for a,b,c in matches}

最佳答案

这里不需要 RegEx,而是可以使用经典的 split() 函数。

在这里,我使用 textwrap 来提高可读性:

import textwrap

text = textwrap.dedent("""\

==== Intro
text
text
==== Body
text
text
==== Refs
test
text""")

你可以这样做:

result = {}
for part in text.split("==== "):
if not part.isspace():
section, content = part.split(' ', 1)
result[section] = content

或者用理解中的元组列表初始化一个dict:

result = dict(part.split(' ', 1)
for part in text.split("==== ")
if not part.isspace())

关于python - 使用正则表达式分组将字符串转换为字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46309997/

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