[英]Why does my python regex not work?
我想替换所有不止一次出现的字符,我使用了Python的re.sub,而我的正则表达式看起来像这样data=re.sub('(.)\\1+','##',data)
,但是什么也没有发生了...
这是我的文字:
文本
※※※※※※※※※※※※※※※※※第一章※※※※※※※※※※※※※※※※※※
这是开始...
您需要在此处使用原始字符串,将1
解释为八进制,然后在字符串中使用以整数等价形式显示的ASCII值。
>>> '\1'
'\x01'
>>> chr(01)
'\x01'
>>> '\101'
'A'
>>> chr(0101)
'A'
使用原始字符串可解决此问题:
>>> '(.)\1+'
'(.)\x01+'
>>> r'(.)\1+' #Note the `r`
'(.)\\1+'
使用原始字符串,因此正则表达式引擎解释反斜杠而不是Python解析器。 只需将r
放在字符串前面:
data=re.sub(r'(.)\1+', '##', data)
^ this r is the important bit
否则, \\1
被解释为字符值1而不是反向引用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.