r的作用

>>> mm = "c:\\a\\b\\c"
>>> mm
'c:\\a\\b\\c'
>>> print(mm)
c:\a\b\c
>>> re.match("c:\\\\",mm).group()
'c:\\'
>>> ret = re.match("c:\\\\",mm).group()
>>> print(ret)
c:\
>>> ret = re.match("c:\\\\a",mm).group()
>>> print(ret)
c:\a
>>> ret = re.match(r"c:\\a",mm).group()
>>> print(ret)
c:\a
>>> ret = re.match(r"c:\a",mm).group()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
>>>

說明

Python中字符串前面加上 r 表示原生字符串,

與大多數編程語言相同,正則表達式裏使用"“作爲轉義字符,這就可能造成反斜槓困擾。假如你需要匹配文本中的字符”",那麼使用編程語言表示的正則表達式裏將需要4個反斜槓"\":前兩個和後兩個分別用於在編程語言裏轉義成反斜槓,轉換成兩個反斜槓後再在正則表達式裏轉義成一個反斜槓。

Python裏的原生字符串很好地解決了這個問題,有了原生字符串,你再也不用擔心是不是漏寫了反斜槓,寫出來的表達式也更直觀。

>>> ret = re.match(r"c:\\a",mm).group()
>>> print(ret)
c:\a
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章