我在perl中遇到过这个表达式:
if($temp !~ /^\.\n$/)
我不熟悉perl中的表达式,并想知道它的含义!
答案 0 :(得分:2)
/PAT/
是m/PAT/
的缩写,是匹配运算符。它检查绑定值是否与正则表达式模式PAT
匹配。
=~
是绑定运算符。它可用于指定匹配运算符检查匹配正则表达式模式的值,因此$temp =~ /PAT/
会检查$temp
是否与模式PAT
匹配。
EXPR1 !~ EXPR1
与!(EXPR1 =~ EXPR1)
相同,因此$temp !~ /PAT/
会检查$temp
是否与模式PAT
不匹配。
相关模式检查该值是否包含除换行符之后的单个字符,后跟一个或两个换行符。
因此,如果$temp
的值不包含除换行后跟一个或两个换行符的单个字符,则表达式为真。
例如,
"a\n"
匹配。不会输入if
的正文。"a\n\n"
匹配(尽管可能是无意的)。不会输入if
的正文。"a"
不匹配。将输入if
的正文。"\n"
不匹配。将输入if
的正文。"\n\n"
不匹配。将输入if
的正文。"ab\n"
不匹配。将输入if
的正文。