在字符串中,要转义反斜杠,使用两个"\\"反斜杠即可
但在正则表达式中有所不同
废话不多说,直接上代码
str="F:\\python_workplace\\mindspore-master\\mindspore\\core\\ops\\apply_momentum.cc"
frame_name="mindspore"
file_name="apply_momentum.cc"
ans=re.findall("{}\\\\(.*)\\\\{}".format(frame_name,file_name),str)
if ans:
print(ans[0])
else:print("match failed")
代码解释:
python中正则表达式使用re模块,findall()是其中的一个函数,表示匹配到所有你需要的内容,将结果返回为一个列表,如果匹配不到则返回空。
在这里我使用了{}.format的格式,这样可以在正则表达式中匹配变量,示例中的变量为frame_name,file_name
重点来了,"\\\\"四个斜杠表示正则表达式中匹配"\",即匹配字符串中的"\",这里字符串中的"\",使用了双斜杠"\\"的表示方法,因为在写字符串时对于单斜杠"\"要进行转义(实际上在内存中它就只有一个斜杠)。而为什么要使用"\\\\"来匹配单斜杠呢,原因显而易见了,首先,你的正则表达式是一个字符串,所以你写单斜杠"\"要用双斜杠"\\"表示,然后你又要匹配一个斜杠"\"(但写法上还是双斜杠"\\"),所以最后使用"\\\\"
简而言之,就是,前面两个斜杠表示转义字符"\",后面两个斜杠表示你要匹配的单斜杠"\"
还是觉得有点啰嗦了!!
差点忘了贴结果
core\ops