我猜这个标签是一个变量,它正在检查9eaf
- 但它是否存在于Perl中?
这里做的“=〜”符号是什么?9eaf
之前和之后的“/”字符是什么?
if ($tag =~ /9eaf/)
{
# Do something
}
答案 0 :(得分:30)
=~
是测试正则表达式匹配的运算符。表达式/9eaf/
是正则表达式(斜杠//
是分隔符,9eaf
是实际的正则表达式)。换句话说,测试是说“如果变量$ tag与正则表达式/ 9eaf / ...匹配”,如果$tag
中存储的字符串连续包含那些字符9eaf
,则会发生此匹配,在任何时候。所以对于字符串
9eaf
xyz9eaf
9eafxyz
xyz9eafxyz
和许多其他人,但不是字符串
9eaxxx
9xexaxfx
和其他许多人。查看'perlre' man page以获取有关正则表达式的更多信息,或查看谷歌“perl正则表达式”。
答案 1 :(得分:8)
'=〜'运算符是binary binding operator,表示以下操作将搜索或修改左侧的标量。
默认(未指定)运算符为'm'表示匹配。
匹配运算符有一对字符,用于指定正则表达式的开始和结束位置。最常见的是,这是'//'。
给Perl Re tutorial读一读。
答案 2 :(得分:6)
代码正在测试9eaf
是否为$tag
值的子字符串。
$tag =~ /9eaf/
是
的缩写$tag =~ m/9eaf/
其中m//
是匹配运算符。它将正则表达式模式(regexp)9eaf
与=~
绑定的值匹配(由=~
的左侧返回)。
运营商(包括m//
和=~
)记录在perlop中。
答案 3 :(得分:3)
检查标量$tag
(可能是一个字符串)与正则表达式/9eaf/
的匹配,它只是检查字符串"9eaf"
是否是子字符串$tag
。查看perldoc perlretut
。