SRE : работа над ошибками

Регулярные выражения : работа над ошибками



Этот раздел поможет понять регулярные выражения на распространённых ошибках


НеправильноПравильноОписание
.*?.+?Распространённый захват всех символов до указанного текста. Ошибка заключается в том, что часто текст подразумевает обязательное наличие хотя бы одного символа, то есть группа не должна возвращать пустую строку, но она допускает эту возможность. Эта ошибка может никогда не выявится по причине валидных данных предоставляемых для поиска, но всё же остаётся ошибкой.
[\w]\wЗаключение одного символа в символьный класс. В символьный класс имеет смысл заключать 2 и более символов / метасимволов.
(#|@|%)[#@%]Взятие одного из 3-х символов шаблона. Класс смотрится более читабельно, не требует экранирования и не требует исключать группу из поиска.
\<\/тег\></тег>В шаблонах для веб-страниц часто излишнее экранирование. Оно не приводит к ошибке, но является излишним.
\Q ... \E\$\+\\Используйте предварительное экранирование, если шаблон регулярного выражения является неявной переменной и может внутри содержать метасимвол "\E". Так как он отменит дальнейшее литеральное восприятие метасимволов.
[\d\w]\wМетасимвол \w включает в себя диапазон цифр \d (не критично)
[^\d]\DГоворит о незнании доступных метасимволов (не критично)
(HKLM|HKCU)HK(LM|CU)Запись короче и скорость выше. Или 8 символов проверять или 6, разница есть?