在Perl中做什么=〜

Inv*_*tus 23 perl operators

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

在这里做什么是"=〜"符号,在9eaf做什么之前和之后有什么"/"字符?

if ($tag =~ /9eaf/)
{
    # Do something
}
Run Code Online (Sandbox Code Playgroud)

jmh*_*mhl 35

=~是运算符测试正则表达式匹配.表达式/9eaf/是正则表达式(斜杠//是分隔符,9eaf是实际的正则表达式).换句话说,测试是说"如果变量$ tag与正则表达式/ 9eaf/...匹配",并且如果存储的字符串在任何点按顺序连续$tag包含这些字符9eaf,则会发生此匹配.所以对于字符串也是如此

9eaf

xyz9eaf

9eafxyz

xyz9eafxyz
Run Code Online (Sandbox Code Playgroud)

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

9eaxxx
9xexaxfx
Run Code Online (Sandbox Code Playgroud)

和许多其他人.查看"perlre"手册页以获取有关正则表达式的更多信息,或google"perl regular expression".

  • 不,`m //`是测试正则表达式的<strike> operation </ strike>操作符。“ =〜”只是告诉“ m //”(以及“ s ///”和“ tr //”)要针对哪个变量进行测试。 (2认同)
  • 不,`/ 9eaf /`不是正则表达式。/ 9eaf /是匹配运算符。9eaf是正则表达式。 (2认同)

小智 9

'=〜'运算符是二进制绑定运算符,表示以下操作将搜索或修改左侧的标量.

默认(未指定)运算符为'm'表示匹配.

匹配运算符具有一对字符,用于指定正则表达式的开始和结束位置.最常见的是,这是'//'.

Perl Re教程一个阅读.


ike*_*ami 7

代码正在测试是否9eaf是值的子字符串$tag.


$tag =~ /9eaf/
Run Code Online (Sandbox Code Playgroud)

是的缩写

$tag =~ m/9eaf/
Run Code Online (Sandbox Code Playgroud)

m//匹配运算符在哪里.它将正则表达式模式(regexp)9eaf与绑定的值=~(由左侧返回)进行匹配=~.


操作员,包括m//=~,记录在perlop中.

正则表达式(例如9eaf)记录在perlre,perlretut中.