我听说perl是一个使用正则表达式的好语言,但我对需要转义的字符有点困惑
我在http://regexlib.com/RETester.aspx上测试了代码,得到了我想要的结果
//home/dev/abc/code/hello/world.cpp#1 //home/dev/((.*?)/[^/]+).*# Match $1 $2 //home/dev/abc/code/hello/world.cpp# abc/code abc
但是,我不太确定如何将其转换为perl代码
我试过了,
\/\/home\/dev\/\(\(\.\*\?\)\/\[\^\/\]\+\)\.\*\#
和
\/\/home\/dev\/((.*?)\/[^\/]+).*\#
两者都失败了
难道你不认为逃避使得正则表达式难以理解吗?我用错了吗?
解决方法
你可以选择使用!而不是/围绕你的正则表达式,这样你就不必转义/.
m!//home/dev/((.*?)/[^/]+).*#!
应该管用.这是它的实际应用:http://ideone.com/TDrBG