Python re.sub回参考不回引用
我有以下几点:
<text top="52" left="20" width="383" height="15" font="0"><b>test</b></text> 我有以下几点:
 fileText = re.sub("<b>(.*?)</b>", "\1", fileText, flags=re.DOTALL) 
 其中fileText是我在上面发布的string。 当我运行正则expression式replace后,我打印出fileText ,我回来了 
 <text top="52" left="20" width="383" height="15" font="0"></text> 
而不是预期的
 <text top="52" left="20" width="383" height="15" font="0">test</text> 
 现在我对正则expression式很熟练,我知道它应该工作,事实上我知道它匹配正确,因为我可以在groups看到它,当我做search和打印出的groups但我是新来的python和困惑至于为什么它不正确地处理后面的引用 
您需要在这里使用原始string ,以便反斜杠不会作为转义字符处理:
 >>> import re >>> fileText = '<text top="52" left="20" width="383" height="15" font="0"><b>test</b></text>' >>> fileText = re.sub("<b>(.*?)</b>", r"\1", fileText, flags=re.DOTALL) >>> fileText '<text top="52" left="20" width="383" height="15" font="0">test</text>' >>> 
 注意"\1"是如何改变为r"\1" 。 虽然是一个非常小的变化(一个字符),但它有很大的作用。 见下文: 
 >>> "\1" '\x01' >>> r"\1" '\\1' >>>