Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Таранова / Лекция-регулярные выражения js.pptx
Скачиваний:
85
Добавлен:
19.05.2015
Размер:
363.42 Кб
Скачать

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

/['"][^"']*\1/

Здесь \1 соответствует совпадению с первым подвыражением. В этом примере ссылка налагает ограничение, требующее, чтобы закрывающая кавычка соответствовала открывающей. Это регулярное выражение не допускает присутствия одинарных кавычек внутри двойных, и наоборот.

23

Экранирование

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

Комбинация "\$" указывает на то, что символ "$" трактуется как обычный символ, а не как признак конца строки в регулярных выражениях. Аналогично, комбинация "\\" соответствует простому символу "\".

24

Основные операторы

Вертикальная черта -- | -- выполняет роль логического оператора "ИЛИ" в регулярных выражениях и служит для задания набора альтернатив.

/\d{3}|[a-z]{4}/ – либо трем цифрам, либо четырем строчным буквам.

25

Квантификация

Квантификатор - это конструкция позволяющая задать сколько раз предшествующий ей символ или группа символов должна встречаться в совпадение.

26

Квантификатор звездочка (*), имеющий смысл "ни разу или больше". Таким образом, если нужно указать, что частью шаблона является любое число повторений указанного атома, то требуется за этим атомом поставить звездочку.

27

а) знак плюса после атома, означает "один или более раз"

б) знак вопроса, означает "один или ни одного".

28

 

Требуемый

Возможный

Квантификатор

минимум

максимум

вхождений

вхождений

*

нет

неограничено

+

1

неограничено

?

нет

1

Смысл

Допускается неограниченное число экземпляров, не требуется ни один (сколько угодно, хоть ни одного)

Допускается неограниченное число экземпляров, требуется один (один раз или больше)

Допускается один экземпляр, не

требуется ни один (нуль или один раз)

29

/(ABC)+/

эквивалентна "(ABC)

(ABC)*",

 

/X(ABC)?Y/

эквивалентна "XABCY|

XY".

 

/\s+java\s+/

// Соответствует слову

"java" с одним или несколькими пробелами до и после него

30

Числовые

квантификаторы

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

неотрицательные числа.

31

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

нуль/бесконечность

Если используется один аргумент (без запятой), то он точно указывает, сколько раз должно 32

произойти совпадение.

/c{4,8}/

/c{4}/

/с{,8}/

/c{4,}/

33

/a{5} b{,6} c{4,8}/

aaaaabbbbb ccccc aaa bbb ccc

aaaaa bbbbbbbbbbbbbb ccccc

/a+ b{3,} c?/ aaaaa bbbbb ccccc aaa bbb ccc

aaaaa bbbbbbbbbbbbbb ccccc /a{5} b{6,} c{4,8}/

aaaaa bbbbb ccccc aaa bbb ccc

aaaaa bbbbbbbbbbbbbb ccccc

34

Соседние файлы в папке Таранова