
- •Регулярные выражения — это шаблоны (образцы), с помощью которых проводится анализ символьных строк
- ••Регулярные выражения реализованы в большинстве языков программирования.
- •Основная операция при использовании регулярных выражений — это их сопоставление с символьными строками.
- •Механизм регулярных выражений позволяет "найти совпавший с образцом фрагмент строки, и заменить его
- •Основой механизма регулярных выражений являются шаблоны для
- •Регулярные выражения (образцы, шаблоны) составляются из обычных и/или специальных символов (метасимволов). Они формируются
- •Самый простой шаблон — это обычный конкретный одиночный символ, который сопоставляется только сам
- •Сопоставление производится с
- •Часто нужно указать, что в некоторой позиции строки может находиться любой символ.
- •Пример.
- •Примеры.
- •Классы символов
- •Перечень символов, заключенный в квадратные скобки и являющийся частью регулярного выражения, называется классом
- •[A-Ma-m] любые строчные или заглавные буквы из первой половины алфавита,
- •Помимо задания с помощью класса символов, разрешенных в данной позиции, имеется обратная возможность,
- •Регулярное выражение соответствующее Любому символу
- •Помимо обычных символов в шаблонах регулярных выражений могут использоваться специальные символы (метасимволы).
- •Использование круглых скобок
- •Найденная подстрока хранится в массиве- результате поиска или в предопределенных свойствах объекта RegExp:
- •Ссылки
- •Ссылка на предыдущее подвыражение указывает не на шаблон этого подвыражения, а на найденный
- •Экранирование
- •Основные операторы
- •Квантификация
- •Квантификатор звездочка (*), имеющий смысл "ни разу или больше". Таким образом, если нужно
- ••а) знак плюса после атома, означает "один или более раз"
- •Числовые
- •Один из аргументов может быть опущен. По умолчанию не указанные минимальное/максимальное значения трактуются
- •Пример
- •Шаблон соответствующий числу, содержащему от двух до четырех цифр
- •Число положительное или отрицательно 4 целых разряда, 2 после запятой или точки
- •Задание
- •Группы
- •Модификаторы
- •Регулярные выражения
- •Каждый объект RegExp имеет пять свойств.
- •Методы пользующиеся регулярными выражениями
- •Поиск совпадений: метод exec
- •Проверка результатов: метод test
- •replace
- •replace
- •Метод match

Методы пользующиеся регулярными выражениями
exec Метод RegExp, который выполняет поиск совпадения в строке. Он возвращает массив данных.
test Метод RegExp, который тестирует совпадение в строке. Возвращает либо истину либо ложь.
match Метод String, который выполняет поиск совпадения в строке. Он возвращает массив данных либо null если совпадения отсутствуют.
search Метод String, который тестирует на совпадение в строке. Он возвращает индекс совпадения, или -1 если совпадений не будет найдено.
replace Метод String, который выполняет поиск совпадения в строке, и заменяет совпавшую подстроку другой подстрокой переданной как аргумент в этот метод.
split Метод String, который использует регулярное выражение или фиксированную строку чтобы разбить строку на массив подстрок.
45

Поиск совпадений: метод exec
Метод exec возвращает массив и ставит свойства регулярного выражения.
Если совпадений нет, то возвращается null.
//Найти одну d, за которой следует 1 или более b, за которыми одна d
//Запомнить найденные b и следующую за ними d
//Регистронезависимый поиск
var myRe = /d(b+)(d)/i;
var myArray = myRe.exec("cdbBdbsbz"); //dbBd[0],bB[1],d[2]
46

Проверка результатов: метод test
Чтобы просто проверить, подходит ли строка под регулярное выражение, используется метод test:
if ( /\s/.test("строка ") ) {
...В строке есть пробелы!...
}
47

replace
Для формирования новых строк с помощью регулярных выражений у объектов типа String имеется метод replace(). Обращение к нему
имеет форму replace(regexp, replaceStr) где
regexp — регулярное выражение (или переменная, которой оно присвоено),
replaceStr — шаблон, на основании которого формируется новая строка (но это уже не регулярное выражение!).
Метод replace возвращает сформированную новую строку.
При выполнении сопоставления, подвыражения регулярного выражения, взятые в нем в круглые скобки, последовательно запоминаются в переменных. Эти переменные можно использовать в шаблоне новой строки (replaceStr), где они обозначаются знаком доллара и соответствующей цифрой ($1, $2, $3 и т.д.). Шаблон для формирования новой строки может включать в себя также статичный текст и другие обычные Javascript-переменные.
48

replace
Пример: строка замены str = "тест еще тест"
str.replace("тест","прошел") // = "прошел еще тест" Пример: Глобальная замена строки
str = “тест еще тест”
str.replace(/тест/g,"прошел") // = “прошел еще прошел”
str.replace(new RegExp("тест",'g'),"прошел") Пример: Замена со ссылками
var re = /(\w+)\s(\w+)/; var str = "John Smith";
var newstr = str.replace(re, "$2, $1") // "Smith, John"
49

Метод match
Функция match() —метод определенный для строковых объектов JavaScript, поэтому эта функция должна вызываться анализируемой строкой. Единственным аргументом функции является регулярное выражение, которое может быть задаваться с помощью переменной или записано в явном виде
str.match(regexp) где
str — анализируемая строка,
match — имя функции, выполняющей сопоставление строки с регулярным выражением,
regexp — регулярное выражение (шаблон). Возвращаемые значения:
При неудачном сопоставлении функция возвращает null.
При удачном сопоставлении возвращается массив, состоящий из: а) успешно найденной подстроки и
б) массива подстрок, образовавшегося в ходе анализа при запоминании подстрок.
50

var url = /(\w+):\/\/([\w.]+)/;
var text = "Посетите наш сайт http://www.donstu.ru";
var result = text.match(url); if (result != null) {
var fullurl = result[0];
//Содержит "http://www.donstu.ru" var protocol = result[1];
//Содержит "http"
var host = result[2];
// Содержит "www.donstu.ru"
}
51