regex - 如何使用 m!在 Perl 正则表达式中

标签 regex perl

我是第一次学习 Perl 和正则表达式,所以如果这是一个愚蠢的问题,我深表歉意。我一直在寻找自己的答案,但找不到任何东西。也许我的部分问题是我真的不知道它叫什么。

我遇到了一段如下所示的代码:

$xl_file = "$curr_dir/$xl_file" unless $xl_file =~ ( m!(^[a-z]:)|[/\\]!i );

当我研究 =~ 运算符时,我陷入了正则表达式的漏洞并开始了解它。但我只见过“m//”匹配运算符。我假设“m!”是另一种匹配运算符,但我找不到任何对它的引用来解释它是如何工作的。通过实验,我发现使用它时需要“!i”,但这就是我所能想到的......

有人可以向我解释一下这一点,或者向我指出一些可以的(免费) Material 吗?

最佳答案

使用匹配运算符,您可以使用任何类型的分隔符,而不仅仅是 /

因此,以下所有匹配运算符都是有效的并且执行相同的任务:

m//
m!!
m{}
m##

另请注意,如果您使用 / 作为分隔符,则可以从开头删除该 m。因此,/foo/ 有效,但 !foo! 无效。

关于regex - 如何使用 m!在 Perl 正则表达式中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17200489/

相关文章:

perl - 如何从未命名的 Perl 模块导入所有 "our"变量而不列出它们?

perl - 在perl中四舍五入小数,结果错误

linux - Perl inotify2 每次文件修改触发两次

regex - perl - 正则表达式之间的范围

python - 确定 sql 语句是否以单词 SELECT 开头

javascript - 正则表达式 : Why this regex doesn't match "not starts with" two letter?

Python格式电话号码

regex - 如何匹配彼此相邻的括号?

java - 使用Java快速计算字符串中单词出现次数的方法

perl - 如何在受限服务器上安装 Perl 模块?