在Perl中==是否等效于Python中的re.match?

时间:2019-02-03 20:18:44

标签: python regex perl

我正在尝试在Python中复制Perl Fathom。此步骤纠正某些单词组合的音节计数。 =〜是否等效于Python中的re.match? re.match仅查找第一个实例。谢谢!

 @SubSyl = (
           'cial',
           'tia',
           'cius',
           'cious',
           'giu',              
           'ion',
           'iou',
           'sia$',
           '.ely$',             
           '[^td]ed$',          
          );

 foreach (@SubSyl) {
          $syl-- if $word =~ /$_/;
        }

2 个答案:

答案 0 :(得分:5)

=~是绑定运算符。它可以绑定匹配,替换或音译。我猜只有第一个等效于Python中的匹配,但是似乎您需要re.search来代替,因为与//的匹配不是锚定在字符串的开头。

答案 1 :(得分:3)

当然不是re.match()。有点麻烦,但是re.match仅在字符串的开头才匹配模式。

  

如果字符串开头的零个或多个字符与正则表达式模式匹配,则返回相应的匹配对象。如果字符串与模式不匹配,则返回None;否则返回false。请注意,这与零长度匹配不同。

re.search()更可能是您要寻找的内容(除非您的正则表达式模式总是与字符串的开头匹配)。