我想要匹配的字符串包括一些转义序列,比如'It's something'。将它与'。*?'匹配是没有问题的,但结果会自动转义。如何防止自动转义,并保持反斜率原样?
例如:
>>> re.findall('\((?P<content>.*?)\)','(It\'s something)')
["It's something"]
我想要的是:
[r"It\'s something"]
答案 0 :(得分:3)
输入字符串也必须是原始字符串。否则,它会在正则表达式看到之前转换:
>>> import re
>>> re.findall('\((?P<content>.*?)\)',r'(It\'s something)')
["It\\'s something"]
>>> _ == [r"It\'s something"]
True
答案 1 :(得分:1)
输入字符串中没有反斜杠。
>>> re.findall('\((?P<content>.*?)\)', r'(It\'s something)')
["It\\'s something"]
>>> ["It\\'s something"] == [r"It\'s something"]
True