在Python中使用3组的正则表达式模式

时间:2017-11-04 12:24:47

标签: python regex

我试图理解Python中的正则表达式。我试图尝试这种模式:

string = re.sub(r'(\".+?\")(: )', '\"here!\": ', string)

这种字符串:

{ some text "data": { "first": "xyz" some text}

我希望这会取代"首先":" xyz" 但令我惊讶的是,被替换的字符串是:"数据":{"第一":" xyz" 。这是为什么?我不知道它为什么会以这种方式运作。

1 个答案:

答案 0 :(得分:1)

您的正则表达式匹配输入字符串的第一部分,该字符串由双引号括起,后跟冒号,因此它会在"data"之前点击"first"

我会去正则表达式:

'{\s*("\w+"):'

这将匹配左括号后面的一个可选空格,然后选择双引号后跟冒号的字母数字文本。

另外,当您使用单引号作为正则表达式的分隔符时,您不需要转义双引号。