我对Regexp的东西很不满意,所以我不知道为什么这行不通。我只想匹配一个赋值/等式中的两个字符串,就像这样:

"string1" = "string2"

在这种情况下,我希望“ string1”和“ string2”匹配(不带引号)。我尝试了以下正则表达式,该正则表达式可在我在网上找到的正则表达式测试器中使用,但不适用于Python:

("[^"]*").=.("[^"]*")

在Python中,它看起来像这样:

matches = re.findall(r'("[^"]*").=.("[^"]*")', line)

但是就像我说的那样,它不起作用。

最佳答案

如果您不希望引号成为匹配项的一部分,请将其移到捕获组之外:

>>> matches = re.findall(r'"([^"]*)".=."([^"]*)"', line)
>>> matches
[('string1', 'string2')]


另外,由于您的“ =”周围有空格,因此您应该只匹配一个空格。点“。”匹配任何字符。

关于python - 通过Regex在Python中匹配“…” =“…”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17371058/

10-17 03:08