我想在python中使用正則表達式來查找回車\ r在字符串中沒有以下換行\ n,因此可能是錯誤。如何匹配回車和python中沒有換行
不過,我正則表達式匹配永諾,我不知道爲什麼:
>>> import re
>>> cr = re.compile("\r[^\n]", re.X)
>>> rr= rege.search("bla")
>>> rr
<_sre.SRE_Match object at 0x0000000003793AC0>
如何將正確的語法是什麼樣子?
我想在python中使用正則表達式來查找回車\ r在字符串中沒有以下換行\ n,因此可能是錯誤。如何匹配回車和python中沒有換行
不過,我正則表達式匹配永諾,我不知道爲什麼:
>>> import re
>>> cr = re.compile("\r[^\n]", re.X)
>>> rr= rege.search("bla")
>>> rr
<_sre.SRE_Match object at 0x0000000003793AC0>
如何將正確的語法是什麼樣子?
您可以使用negative lookahead:
\r(?!\n)
在Python
:
import re
rx = r'\r(?!\n)'
for match in re.finditer(rx, string):
# do sth. here
您使用詳細模式(re.X
)和非原始字符串。這意味着你的正則表達式有一個文字回車符和換行符。由於這些是空白字符,而且處於詳細模式,所以字符類外的回車完全被忽略。你的正則表達式實際上是r'[^\n]'
,匹配任何非換行字符。
使用原始字符串。正如其他人所建議的那樣,負面預測對於「未遵循」斷言也會更好:
r'\r(?!\n)'
閱讀有關「預測」的內容。 –
具體來說,一個負面的前瞻。 – Jan
對於語法錯誤,你是對的。不過,正如我的腳本中所做的那樣,它仍然無法正常工作。我很少使用lookaheads。如果有幫助,會做,但我的代碼不能正常工作的解釋是什麼? – aldorado