如何使用python正则表达式查找不在单词内的单引号的所有出现

时间:2016-04-05 23:47:04

标签: python regex

我有一个这样的字符串:

  

'':' 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"

1 个答案:

答案 0 :(得分:1)

尝试使用以下正则表达式。

正则表达方式: (?<![a-zA-Z])'|'(?![a-zA-Z])并替换为"

<强>解释

  • (?<![a-zA-Z])'匹配撇号后面没有字母。

  • '(?![a-zA-Z])匹配撇号后面没有字母。

<强> Regex101 Demo