Подтвердить что ты не робот

Javascript regex по сравнению с регулярным выражением Perl

Я просто noob, когда дело доходит до regexp. Я знаю, что Perl поражает регулярным выражением, и я не знаю много Perl. Недавно началось изучение JavaScript и появилось регулярное выражение для проверка пользовательских входов... не использовала их много.

Как JavaScript regexp сравнивается с Perl regexp? Сходства и различия?
Могут ли все регулярные выражения, написанные в JS, использоваться в Perl и наоборот?
Аналогичный синтаксис?

4b9b3361

Ответ 1

Начиная с ECMAScript 2018 года, многие из недостатков регулярных выражений JavaScript были исправлены.

Чего еще не хватает:

  • В JavaScript нет способа предотвратить обратный отслеживание путем окончательного сопоставления (с помощью притяжательных квантификаторов ++/*+/?+ или атомарных групп (?>...)).
  • Рекурсивное/сбалансированное сопоставление подгрупп не поддерживается.
  • Еще одна (косметическая) вещь заключается в том, что JavaScript не знает подробных регулярных выражений, что может затруднить их чтение.

Кроме этого, основной синтаксис регулярных выражений очень похож в обоих вариантах.

Ответ 2

Этот comparison ответит на все ваши вопросы.

Ответ 3

Другое отличие: в JavaScript нет модификатора s: точка "." никогда не будет соответствовать символу новой строки. В качестве замены для символа "." Класс символов [\s\S] может использоваться в JavaScript, который будет работать как /./s в Perl.

Ответ 4

Я только что натолкнулся на случай, когда десятичное число \d не распознается в некоторых версиях JavaScript - вы должны использовать [0-9].