ГРУППА КУРСА
|
Написание регулярных выраженийЧто такое регулярные выраженияРегулярные выражения - серьёзный инструмент для работы с текстом. Они позволяют находить подстроку, соответствующую определённому шаблону. Также их называют RegExp. Регулярное выражение состоит из паттерна и флагов. Паттерн - это шаблон по которому ищется подстрока. а флаги определяют разные варианты поиска. Паттерн пишется между двух слэшей, которые указывают программе, что это регулярное выражение. Флаги ставятся сразу после паттерна. Пример: +
Самый простой вариант паттерна - это просто строка. Правда, в таком регулярном выражении мало смысла, можно использовать простой поиск подстроки. Реальные паттерны сложнее, далее мы их рассмотрим. Есть другой способ написания регулярного выражения - создание объекта RegExp. паттерн и флаги пишутся в кавычках.
ФлагиСуществуют следующие флаги: g - при отсутствии этого флага ищестя только первое совпадение. А если флаг есть, то ищатся все совпадения. В зависимости от этого, методы для работы с регулярками могут выполняться по-разному. i - регистронезависимый поиск. Наличие этого флага позволяет найти совпадения без учёта регистра символов. m - многострочный режим. Если в строке есть символ переноса строки, то общая строка рассматривается как несколько строк. Это имеет значение, так как в регулярных выражениях можно учитывать начало и конец строки. Если нужно указать несколько флагов, то они пишутся подряд. Регулярное выражение может быть и без флагов. Использование регулярных выраженийРассмотрим несколько примеров использования регулярных выражений. Пока это будет просто поиск подстроки. Для работы с регулярками существуют специальные методы, в том числе метод match(), который возвращает массив с найденными совпадениями. Найдём слово "язык" в тексте:
В тексте слово повторяется два раза. Мы использовали флаг g, но слово найдено только один раз, потому что второе написано с большой буквы. Прибавим флаг i, тогда будет найдены оба совпадения. В предыдущем примере регулярное выражение записано в переменную. Но его можно указывать прямо внутри методов:
|