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

Теги: templating 

. - заменяет любой знак

[...] - множество. [1-6] эквивалент [123456]. Может содержать несколько диапазонов, например [A-F1-9]

Есть несколько сокращений:

  • \d эквивалент [0-9]
  • \w эквивалент [A-Za-z0-9_]

[^...] - НЕ множество. [^x] - все кроме x.

Спец.символы:

  • \t вкладка
  • \n новая строка
  • \r возврат каретки
  • \f разрыв страницы
  • \s эквивалент [\t\r\n\f]

Квантификаторы устанавливают кол-во символов:

  • {n} точно n раз
  • {n,m} не менее n и не более m
  • {n,} не менее n

Пример: \d{3}-\d{0,3}-\d{2}

Символ ? является аналогом квантификатора {0,1} - один или ни одного символ. Например так https?:// ищет https или http

Символ + аналог {1,} и ищет последовательности, встречающиеся не менее 1 раза. Например http?://[a-z0-9-]+\.com найдет все ссылки с доменом .com

Символ * эквивалентен {0,} и ищет последовательность. которая встречается 0 и более раз. .* соответствует чему угодно. К примеру так можно найти любую цитату в кавычках: ".*". Данный поиск жадный (как и все с квантификаторами) - он извлечет все между самой первой кавычкой и самой последней.

Символы привязки:

  • ^ (за пределами скобок) - обозначает поиск совпадения в начале строки. Пример ^-* найдет разделитель ----
  • $ привязка к концу строки. Пример ^-*$ найдет разделитель, который начинается и звершается дефисом. ^*$ так можно найти пустую строку - по этой причине в ЯП не привествуется завершение строк кода пробелами.
  • \b привязывает к началу или к концу слова. Пример \ba[a-z]*s\b найдет все слова начинающиеся с a и завершающиеся s

Группы:

  • (...) позволет работать с последовательностью символов или целым выражением. Пример \b\d{1,3}(,\d{3})*(\.\d+)?\b находит любые числа состоящие из трех цифр в начале слова , запятой или точки за которой могут идти три цифры или точка за которой идет хотя бы одна цифра и на этом словао завершается.

Чередование:

  • | позволяет найти соответвствие одному из выражений. Пример (123|456)-d{3}

Смотри еще: