我听说 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
关于regex - perl 正则表达式转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4550523/