In [1]: import re
In [2]: mm = "c:\\a\\b\\c"
In [3]: re.match("c:\\\\",mm).group()
Out[3]: 'c:\\'
In [4]: ret = re.match("c:\\\\",mm).group()
In [5]: print(ret)
c:\
In [6]: ret = re.match("c:\\\\a",mm).group()
In [7]: print(ret)
c:\a
In [8]: ret = re.match(r"c:\\a",mm).group()
In [9]: print(ret)
c:\a
说明
Python中字符串前面加上 r 表示原生字符串
,与大多数编程语言相同,正则表达式里使用"\"作为转义字符
,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成“一个反斜杠”。
Python里的原生字符串很好地解决了这个问题,有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。
In [8]: ret = re.match(r"c:\\a",mm).group()
In [9]: print(ret)
c:\a