Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想在 Perl 中的匹配正则 r 表达式中包含一个变量,并检查该变量是否不在字符串中。
此处的链接说明了如何包含变量,但如果变量不匹配,我很难测试。当然,我可以像这样否定 if 条件:
if (!($string =~ m/$Myvar/)) { # Do some code here }
但我确信在正则表达式匹配中必须有一种方法。有任何想法吗?
提前谢谢你的帮助。
使用!~运算符。
!~
if ($string !~ m/$Myvar/) { # Do some code here }
或者index完全使用并避免使用正则表达式引擎。即使$Myvar有正则表达式引擎特别对待的字符,这也将起作用。
index
$Myvar
if ( index($string, $Myvar) < 0 ) { # Do some code here }
否定结果有什么问题?
“负匹配”(需要负前瞻断言)使您的正则表达式更加复杂:
if ($string =~ m/^(?!.*$Myvar)/s) { # Do some code here }