如何取消此正则表达式(不使用!~
)?
my $Line='pqr_abc_def_ghi_xyz';
if ($Line=~/(?:abc|def|ghi)/)
{
printf("abc|def|ghi is not present\n");
}
else
{
printf("abc|def|ghi is present\n");
}
注意:abc,def或ghi可以在字符串之前或之后
最佳答案
if ( $Line =~ /^(?!.*(?:abc|def|ghi))/s ) {
也就是说,在字符串开头之后的任何地方都无法匹配该模式。
关于regex - Perl正则表达式否定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20229880/