regex - Perl正则表达式否定

标签 regex perl regex-negation

如何取消此正则表达式(不使用!~)?

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/

相关文章:

c++ - 在 Unix 上使用 C++ 的正则表达式

javascript - 正则表达式模式匹配小问题与模式匹配中的括号

python - Perl 和 Python 之间正则表达式行为的差异?

android - 如何将 Fennec 与 eclipse for android 连接

regex - 验证正则表达式中的多个条件

php - 如何匹配不包含单词的字符串?

javascript - 正则表达式查找 char '.' 除了以 @ 开头的单词

regex - 正则表达式的继承者?

regex - 查找文件的正则表达式

perl - 当散列有很多键时按值对散列进行排序