在Perl中=~做什么?

but5z9lq  于 8个月前  发布在  Perl
关注(0)|答案(4)|浏览(140)

我猜标签是一个变量,它正在检查9eaf-但这在Perl中存在吗?
这里的“=~”符号是做什么的?9eaf前后的“/”字符是做什么的?

if ($tag =~ /9eaf/)
{
    # Do something
}
798qvoo8

798qvoo81#

=~是测试正则表达式匹配的运算符。表达式/9eaf/是正则表达式(斜杠//是分隔符,9eaf是实际的正则表达式)。测试是说“如果变量$tag匹配正则表达式/9 eaf/.”如果存储在$tag中的字符串在任何点上连续地按顺序包含这些字符9eaf,则会发生这种匹配。

9eaf

xyz9eaf

9eafxyz

xyz9eafxyz

还有很多其他的,但不是琴弦

9eaxxx
9xexaxfx

还有很多其他的。查找'perlre' man page以获得更多关于正则表达式的信息,或者谷歌“perl正则表达式”。

jdzmm42g

jdzmm42g2#

“=~”运算符是一个二进制绑定运算符,它指示以下操作将搜索或修改左侧的标量。
匹配的默认(未指定)运算符是'm'。
匹配运算符有一对字符,指定正则表达式的开始和结束位置。最常见的是'//'。
给予Perl Re tutorial一个读数。

1rhkuytd

1rhkuytd3#

代码测试9eaf是否是$tag值的子串。

$tag =~ /9eaf/

的缩写

$tag =~ m/9eaf/

其中m//是匹配运算符。它将正则表达式模式(regexp)9eaf=~绑定的值(由=~的左手返回)进行匹配。
运算符,包括m//=~,都记录在perlop中。
正则表达式(例如9eaf)在perlreperlretut中有文档记录。

wkyowqbh

wkyowqbh4#

它检查标量$tag(可能是一个字符串)与正则表达式/9eaf/的匹配,正则表达式/9eaf/只是检查字符串"9eaf"是否是$tag的子字符串。

相关问题