【问题标题】:Is =~ in Perl equivalent to re.match in Python?Perl 中的 =~ 是否等同于 Python 中的 re.match?
【发布时间】:2019-06-27 15:56:00
【问题描述】:

我正在尝试在 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 =~ /$_/;
        }

【问题讨论】:

    标签: python regex perl


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      当然不是re.match()。这有点棘手,但 re.match 仅匹配从字符串开头开始的模式。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-22
        相关资源
        最近更新 更多