python - 如何替换 "key": value pairs in string with key: value (remove quotes from key)?

标签 python python-3.x regex

我需要从键中删除字符串中的引号。这是一个代码:

import re
mystr = '["key": val, "key2": val, "key3": v, "key5": 34, "key6": "ef"]'

key_pattern = "(\"(?P<key>\w+)\": )"
pattern = re.compile(key_pattern)
print(re.sub(pattern, "\key", mystr))

这不起作用。 我需要得到结果:

mystr = '[key: val, key2: val, key3: v, key5: 34, key6: "ef"]'

最佳答案

你可以使用

"(\w+)"(?=:)

请参阅regex demo 。详情:

  • " - 一个 " 字符
  • (\w+) - 第 1 组:一个或多个字母、数字、_
  • " - 一个 " 字符
  • (?=:) - 下一个字符必须是 :

请参阅Python demo :

import re
mystr = '["key": val, "key2": val, "key3": v, "key5": 34, "key6": "ef"]'
key_pattern = '"(\w+)"(?=:)'
print(re.sub(key_pattern, r"\1", mystr))
# => [key: val, key2: val, key3: v, key5: 34, key6: "ef"]

关于python - 如何替换 "key": value pairs in string with key: value (remove quotes from key)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64121565/

相关文章:

python - QTableWidget-自动公式驱动单元格

javascript - 生成一个随机类并在 jQuery 中使用正则表达式读取

C# 正则表达式返回括号中的数字

regex - Notepad++ 使用正则表达式为 Styler 配置定义的新关键字

python - 在 VS Code 中调试时查看数据帧

Python - 装饰器调用内部函数?

python - anaconda环境导入tensorflow时出现DLL错误

python - 对于某些输入,无法将序列乘以 'float' 类型的非 int

python - pathlib.Path.home() 中的 pathlib 库错误 : type object 'Path' has no attribute 'home'

python - blit 错误的目标位置无效,不知道如何处理