文件包含以下行:
$ cat build-log.txt
2018-02-23T10:08:52.856946Z|cov-internal-capture|6812|info|> EXECUTING: "C:\ghs\comp_201416\asarm.exe" -elf -b0 [ skip ]
我花了一个多小时试图找出如何设置Python re.search模式。这一切都结束了(目标只是提取编译器名称,在这个例子中'asarm')
m = re.search('C:\\\\ghs\\\\comp_201416\\\\([a-z]*)\\.exe', line)
在Python代码中有效(至少m.group(1)给出'asarm')
请解释为什么需要四个反斜杠来引用文件中的一个?
使用
Python 2.7
Mac OS X High Sierra
Elpy
GNU Emacs 25.3.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21 Version 10.9.5 (Build 13F1911))
[ https://emacsformacosx.com ]
答案 0 :(得分:2)
如果您将其指定为原始r
字符串,则只需要转义一次。
regex = r"C:\\ghs\\comp_201416\\([a-z]*)\.exe"
\
被转义一次,所以它看起来像\\
,.exe
只有.
需要转义,所以\.