正则表达式 – 使用|时,两个备选方案是否匹配在Perl正则表达式?

我对下面的正则表达式感到困惑.请帮我理解一下.

my $test = "fred andor Berry";
if ($test =~ /fred (and|or) Berry/) {
    print "Matched!\n";
} else {
      print "Did not match!\n";
}

我认为它会匹配,但我得到“不匹配!”.如果我加入它,像这样,

my $test = "fred andor Berry";
if ($test =~ /fred (and|or)+ Berry/) {
   print "Matched!\n";
} else {
   print "Did not match!\n";
}

然后匹配.我以为我可以使用和/或将表达式与“and”,“or”和“andor”匹配.没有?

解决方法

表达式(和|或)将匹配和或或,但不是和或.当你添加它时,它将接受相同模式的两个(实际上是一个或多个)连续匹配,这允许它匹配oror. (首先它匹配,然后或.)

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...