homechevron_rightУчебаchevron_rightИнформатика

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

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

Creative Commons Attribution/Share-Alike License 3.0 (Unported)

Этот материал распространяется на условиях лицензии Creative Commons Attribution/Share-Alike License 3.0 (Unported). Это означает, что вы можете размещать этот контент на своем сайте или создавать на его основе собственный (в том числе и в коммерческих целях), при условии сохранения оригинального лицензионного соглашения. Кроме того, Вы должны отметить автора этой работы, путем размещения HTML ссылки на оригинал работы https://planetcalc.ru/708/. Пожалуйста оставьте без изменения все ссылки на других авторов данной работы или работы, на основе которой создана данная работа (если таковые имеются в спроводительном тексте).

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

По моему опыту, чтобы разобраться, надо просто найти толковое описание. Могу порекомендовать главу 24 из книги Джозефа и Бена Албахари «C# 3.0. Справочник» издательства O'Reilly. До C# 3.0 дело у меня так и не дошло, и это единственная глава из книги, которую я прочитал, но про регулярные выражения написано понятно.

Собственно, регулярки — крутейшая вещь. И везде они есть, в том числе и на Javascript, на котором пишутся все калькуляторы на нашем сайте. В нем есть такой объект RegExp. Вот ты туда текст регулярки пихаешь, и начинаешь ее по всякому использовать.

Как использовать?

Во-первых, есть такой метод test(string) — возвращает выражение true, если регулярка заматчилась (нашлось совпадение в тексте), и false, если ничего не нашлось.

Во-вторых, есть метод exec(string) — который позволяет извлечь то, что заматчилось. В результате вызова этого метода получаем массив результатов. Он нужен, если в тексте регулярки мы использовали группировку скобками ().
Массив там, кстати, не очень массив. Если были группы, то нулевой элемент массива это все совпадение целиком, а все последующие — это группы. Кроме того, там есть два свойства, input — это вообще вся строка, которую передали на вход, и index — видимо, индекс в массиве (не знаю, зачем оно нужно).

В-третьих, можно использовать регулярку для замены по строке, вызовом source_string.replace(regex, replace_string). Наверно, для этого ее используют больше всего.

Ну а ниже калькулятор, который позволит поиграться с регулярными выражениями.

Вводим текст, на который будет натравливаться регулярное выражение, само выражение, модификаторы (по умолчанию — искать по всей строке), строку для замены.

На выходе получаем результаты вызовов методов test, exec, и replace на введенном тексте. Вот так можно на ходу тренироваться на кошках, если не уверен, что твоя регулярка правильно сработает.

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

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

Результат вызова метода test
 
Результат вызова метода exec
 
Результат вызова метода replace
 

Creative Commons Attribution/Share-Alike License 3.0 (Unported) PLANETCALC, Проверка регулярных выражений

Комментарии