[英]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.