我有一个这样的字符串:
'':' Janya的Thai Delight'
我想用双引号替换所有单引号,只要它们没有被字母包围。换句话说,我希望除Janya's
中的每个引号之外的每个引号都成为双引号。我认为这会奏效,但事实并非如此。
re_string = '\'(?![a-z])|\'(?=[a-z])'
re.sub(re_string, '"', "'name': 'Janya's Thai Delight'")
# results in: "name": "Janya"s Thai Delight"
预期结果: "name": "Janya's Thai Delight"
答案 0 :(得分:1)
尝试使用以下正则表达式。
正则表达方式: (?<![a-zA-Z])'|'(?![a-zA-Z])
并替换为"
<强>解释强>
(?<![a-zA-Z])'
匹配撇号后面没有字母。
'(?![a-zA-Z])
匹配撇号后面没有字母。
<强> Regex101 Demo 强>