regex - perl 正则表达式转义字符

标签 regex perl

我听说 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/

相关文章:

mysql - 如何在Mysql中转义正则表达式中的特殊SQL字符

java - 字节缓冲区性能

Javascript 清理 html 代码并仅使用字母数字作为返回

linux - 在 initramfs 中使用 perl 重定向系统调用的输出

perl - 如何在 Perl 中管理多个子进程?

regex - 如何使用正则表达式去除字符串中多余的空格

perl - 如何在我的 Perl 模块测试中检查网络可用性?

php - 如何使用正则表达式替换内容

java - Regex java 一个用于提取第一个字母字符的正则表达式

linux - 递归列出 tar/zip 存档的内容