繁体   English   中英

=~ 在 Perl 中做什么? [关闭]

[英]What does =~ do in Perl? [closed]

我猜标签是一个变量,它正在检查9eaf - 但它是否存在于 Perl 中?

这里的“=~”符号是做什么用的, 9eaf前后的“/”字符是做什么用的?

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

=~是测试正则表达式匹配的运算符。 表达式/9eaf/是一个正则表达式(斜杠//是定界符, 9eaf是实际的正则表达式)。 换句话说,测试是说“如果变量 $tag 与正则表达式 /9eaf/... 匹配”,并且如果存储在$tag中的字符串在任何时候按顺序连续包含这些字符9eaf ,则会发生此匹配。 所以这对字符串来说是正确的

9eaf

xyz9eaf

9eafxyz

xyz9eafxyz

和许多其他人,但不是字符串

9eaxxx
9xexaxfx

和许多其他人。 查找“perlre”手册页以获取有关正则表达式的更多信息,或在谷歌上搜索“perl regular expression”。

'=~' 运算符是一个二元绑定运算符,表示后面的操作将搜索或修改左边的标量。

默认(未指定)运算符是匹配的“m”。

匹配运算符有一对字符,指定正则表达式的开始和结束位置。 最常见的是“//”。

Perl Re教程看一下。

该代码正在测试9eaf是否是$tag值的 substring。


$tag =~ /9eaf/

是简称

$tag =~ m/9eaf/

其中m//是匹配运算符。 它匹配正则表达式模式 (regexp) 9eaf与 =~ 绑定的值(由=~ =~左侧返回)。


运算符,包括m//=~ ,记录在perlop中。

正则表达式(例如9eaf )记录在perlreperlretut中。

这将检查标量$tag (可能是一个字符串)与正则表达式/9eaf/的匹配,后者仅检查字符串"9eaf"是否是$tag的 substring。 查看perldoc perlretut

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM