Регулярные выражения: популярные шаблоны

3 минуты на чтение

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

Синтаксис PCRE регулярных выражений

Язык PCRE (Perl Compatible Regular Expression) является наиболее распространенным для регулярных выражений. Согласно правилам PCRE, регулярное выражение представляет собой обычную строку символов, расположенную между символами-ограничителями. Обычно в качестве символа-ограничителя выступает слеш /. Таким образом общий вид для всех регулярных выражений PCRE следующий:

Также в языке PCRE возможно использование альтернативных ограничителей: любых одинаковых символов или парных скобок, например:

При использовании в качестве ограничителей скобок, скобки использующиеся внутри выражения экранировать не надо.

Основы регулярных выражений

ВыражениеОписание выраженияПример использованияПояснение к примеру
\Sлюбой пробельный символ, к этой категории относятся: пробел ” ” , знак табуляции \t, перенос строк \n, возврат каретки \rtext.replace(/\S/g,"_")Замена на _ всех пробельных символов
\sВсе символы кроме пробельныхtext.match(/\s/g)Удаление всех пробельных символов (в отличие от варианта выше, ищет все символы, кроме пробельных
\WВсе символы, кроме словесных: латинских букв, цифр, знака подчеркиванияtext.match(/\W/g)Найдет все кроме цифр, букв латинского алфавита, знака подчеркивания
\wЛюбой словесный символ (латинские буквы, цифры и знак подчеркивания)text.match(/\w/g)Найдет все цифры, буквы латинского алфавита и знак подчеркивания
\DЛюбой нецифровой символtext.match(/\D/g)Найдет все, кроме цифр
\dТолько цифровой символtext.match(/\d/g)Найдет все цифры
a Указанный символ или последовательность символовtext.match(/A/g)Найдет все заглавные A
[abc]Любой из перечисленных в квадратных скобкахtext.match(/[Aa]/g)Найдет все символы A, как заглавные так и строчные
[^abc]Все кроме перечисленных в квадратных скобкахtext.match(/[^Aa]/g)Исключит буквы А, как заглавные, так и прописные

Шаблоны регулярных выражений

ШаблонОписание
(\S+)@([a-z0-9.]+)Поиск адреса электронной почты
((\+?7|8)[ \-] ?)?((\(\d{3}\))|(\d{3}))?([ \-])?(\d{3}[\- ]?\d{2}[\- ]?\d{2})Поиск номера телефона
^\s+|\n|\r|\s+$Поиск пробелов в начале и конце строки, а также переносов строк
<a href="[^>]+">.+?<\/a>Поиск ссылки в коде

Проверка регулярных выражений

Здесь вы можете поупражняться в оттачивании навыков составления регулярных выражений.

See the Pen
WOV RegExp templates by Paul (@1110000)
on CodePen.

 

 

Facebook Vk Ok Twitter Telegram

Похожие записи:

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