>>> mm = "c:\a\b\c" >>> mm 'c:\a\b\c' >>> print(mm) c:ac >>> 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
from:https://www.cnblogs.com/georgexu/p/11204748.html