gpt4 book ai didi

perl - perl字符串匹配中/Regex/gm和m/Regex/g的区别

转载 作者:行者123 更新时间:2023-12-04 00:52:25 25 4
gpt4 key购买 nike

perl 字符串匹配中 ($ipAddrResult =~/Regex/gm) 和 ($ipAddrResult =~ m/Regex/g) 之间有区别吗?当我在网上谷歌时,我得到了第二个而不是第一个的解释。我尝试编辑的文件具有第一个条件。

最佳答案

m s 在不同的地方意味着不同的东西。

我们先来看第二个例子。
m//是正则表达式匹配运算符。作为快捷方式,m可以省略,所以

$foo =~ m/$pattern/;

完全一样
$foo =~ /$pattern/;

唯一一次 m如果您想使用除 / 以外的分隔符,则需要为你的模式。你可以做,例如
$foo =~ m!$pattern!;


$foo =~ m[$pattern];

等等,但这些都需要 m在那里。

在第一个示例中, m在正则表达式之后是一个修饰符标志,它告诉正则表达式如何表现。正则表达式标志记录在 perlre 中。手册页,其中有这样的说法:

m - Treat string as multiple lines. That is, change "^" and "$" from matching the start or end of line only at the left and right ends of the string to matching them anywhere within the string.



所以这个:
$foo =~ /$pattern/m;

与此相同:
$foo =~ m/$pattern/m;

和这个一样:
$foo =~ m{$pattern}m;

关于perl - perl字符串匹配中/Regex/gm和m/Regex/g的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22515220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com