Является ли = ~ в Perl эквивалентом re.match в Python? - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь повторить Perl Fathom в Python.Этот шаг корректирует количество слогов для некоторых словосочетаний.Является ли = ~ эквивалентным re.match в Python?re.match ищет только первый экземпляр.Спасибо!

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

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

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

=~ является оператором привязки.Он может связывать совпадение, замену или транслитерацию.Я предполагаю, что только первое из них может быть эквивалентно сопоставлению в Python, но, похоже, вам нужно вместо re.search, так как сопоставление с // не закреплено в начале строки.

0 голосов
/ 03 февраля 2019

Конечно, нет re.match().Это что-то вроде ошибки, но re.match соответствует шаблону, начинающемуся только с начала строки.

Если ноль или более символов в начале строки соответствуют шаблону регулярного выражения, верните соответствующийсопоставить объект.Вернуть None, если строка не соответствует шаблону;обратите внимание, что это отличается от совпадения нулевой длины.

re.search() более вероятно, что вы ищете (если только вы не используете регулярное выражение, всегда совпадает с началомстрока).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...