класс персонажей: нетерпеливый или ленивый? - PullRequest
0 голосов
/ 14 января 2019

Если я хочу захватить все до конца, я считаю, что эти два возвращают эквивалентные результаты.

([^=]+)=
(.+?)=

Есть ли какая-либо причина, по которой вы предпочитаете один другому, кроме вашего счета в гольф-коде?

1 Ответ

0 голосов
/ 14 января 2019

Шаблон класса отрицанных символов будет соответствовать своему содержимому за один шаг, в то время как ленивый расширит символ за символом, что должно повысить эффективность первого.

Будьте внимательны относительно разрывов строк, . может включать или не включать символ переноса строки в зависимости от двигателя и модификаторов, [^ =] будет включать его почти во всех двигателях.

Если за шаблоном следуют другие элементы, .+? может расширяться через символы границы, а [^=]+ - никогда. Например. ([^=]+)=3 и (.+?)=3 будут совпадать по-разному на 1=2=3.

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