第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

re.sub(".*", ", "(replacement)", "text")

re.sub(".*", ", "(replacement)", "text")

胡子哥哥 2021-11-09 20:37:26
在 Python 3.7(在 Windows 64 位上測試)上,使用 RegEx 替換字符串.*會使輸入字符串重復(fù)兩次!在 Python 3.7.2 上:>>> import re>>> re.sub(".*", "(replacement)", "sample text")'(replacement)(replacement)'在 Python 3.6.4 上:>>> import re>>> re.sub(".*", "(replacement)", "sample text")'(replacement)'在 Python 2.7.5(32 位)上:>>> import re>>> re.sub(".*", "(replacement)", "sample text")'(replacement)'怎么了?如何解決?
查看完整描述

1 回答

?

TA貢獻2065條經(jīng)驗 獲得超14個贊

這不是錯誤,而是來自提交fbb490fd2f38bd817d99c20c05121ad0168a38ee 的Python 3.7 中的錯誤修復(fù)。


在正則表達式中,非零寬度匹配將指針位置移動到匹配的末尾,以便下一個斷言,無論是否為零寬度,都可以從匹配之后的位置繼續(xù)匹配。因此,在您的示例中,在.*貪婪地匹配并消耗整個字符串之后,指針然后移動到字符串末尾的事實實際上仍然為該位置的零寬度匹配留下了“空間”,這可以從以下代碼在 Python 2.7、3.6 和 3.7 中的行為相同:


>>> re.findall(".*", 'sample text')

['sample text', '']

因此,關(guān)于在非零寬度匹配之后立即替換零寬度匹配的錯誤修復(fù)現(xiàn)在正確地用替換文本替換了兩個匹配。


查看完整回答
反對 回復(fù) 2021-11-09
  • 1 回答
  • 0 關(guān)注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號