gpt4 book ai didi

python - 如何从字符串中替换匹配模式中的多个值

转载 作者:行者123 更新时间:2023-12-01 08:00:25 24 4
gpt4 key购买 nike

我想搜索字符串中的模式,然后再次搜索匹配模式中的一些无效字符,然后删除它们或替换为一些有效字符。

我有一些示例词典,例如。 sample_dict = {"randomId":"123y"uhnb\n g", "desc": ["样本描述"]}

在这种情况下,我想找到字典的值,比如“123y”uhnb\n g”,然后删除其中的无效字符,例如 ("、\t、\n) 等。我尝试过的是将所有字典存储在一个文件中,然后读取文件并匹配字典值的模式,但这给了我一个匹配模式列表,我也可以编译这些匹配项,但我不确定如何在原始字典中执行替换值所以我的最终输出将是:{"randomId":"123y uhnb g", "desc": ["样本描述"]}

pattern = re.findall("\":\"(.+?)\"", sample_dict)

预期结果:

{"randomId":"123y uhnb g", "desc": ["sample description"]}

实际结果:

['123y" uhnb\n g']

最佳答案

您可以使用 re.sub 替换值中的非字母数字字符如下

dct = {"randomId":"123y uhnb\n g", "desc": ["sample description"]}
import re

for key, value in dct.items():
val = None
#If the value is a string, directly substitute
if isinstance(value, str):
val = re.sub(r"[^a-zA-Z0-9 ]", '', str(value))
#If value is a list, substitute for all string in the list
elif isinstance(value, list):
val = []
for item in value:
val.append(re.sub(r"[^a-zA-Z0-9]", ' ', str(item)))
dct[key] = val

print(dct)
#{'randomId': '123y uhnb g', 'desc': ['sample description']}

关于python - 如何从字符串中替换匹配模式中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55770527/

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