Лекция. Регулярные выражения



Скачать 154.4 Kb.
Дата06.08.2013
Размер154.4 Kb.
ТипДокументы


Лекция. Регулярные выражения

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

В каждом разделе этого краткого справочника приводится перечень конкретной категории символов, операторов и конструкций, которые можно использовать для задания регулярных выражений:

#Escape-символы

Обратная косая черта (\) в регулярных выражениях указывает, что следующий за ней символ либо является специальным знаком (как показано в следующей таблице), либо должен интерпретироваться буквально. Дополнительные сведения см. в разделе Escape-знаки.

Escape-символ

Описание

Шаблон

\a

Соответствует знаку колокольчика, \u0007.

\a

\b

В классе символов соответствует знаку BACKSPACE, \u0008.

[\b]{3,}

\t

Соответствует знаку табуляции, \u0009.

(\w+)\t

\r

Соответствует знаку возврата каретки, \u000D. (\r не эквивалентен знаку начала новой строки, \n.)

\r\n(\w+)

\v

Соответствует знаку вертикальной табуляции, \u000B.

[\v]{2,}

\f

Соответствует знаку перевода страницы, \u000C.

[\f]{2,}

\n

Соответствует знаку новой строки, \u000A.

\r\n(\w+)

\e

Соответствует escape-знаку, \u001B.


\e

\nnn

Использует восьмеричное представление для указания символа (в nnn может быть до трех цифр).

\w\040\w

\xnn

Использует шестнадцатеричное представление для указания символа (nn состоит ровно из двух цифр).

\w\x20\w

\cX

\cx

Соответствует управляющему символу ASCII, который задан как X или x, где X или x является буквой управляющего символа.

\cC

\unnnn

Совпадение со знаком Юникода в шестнадцатеричном представлении (строго четыре цифры, представленные как nnnn).

\w\u0020\w

\

Если за этим знаком следует символ, не распознанный как escape-символ из этой и других таблиц данной темы, то соответствует в точности этому символу. Например, \* совпадает с \x2A. Это позволяет обработчику регулярных выражений распознавать языковые элементы (такие как * или ?) и символьные литералы (представленные как \* или \?).

\d+[\+-x\*]\d+\d+[\+-x\*\d+

#Классы символов

Класс символов соответствует какому-либо одному набору символов. Классы символов состоят из языковых элементов, приведенных в следующей таблице. Дополнительные сведения см. в разделе Классы знаков.

Класс знаков

Описание

Шаблон

[группа_символов]

Соответствует одному символу из группы_символов. По умолчанию при сопоставлении учитывается регистр.

[ae]

[^группа_символов]

Отрицание: соответствует одному символу, не входящему в группу_символов. По умолчанию символы в группе_символов зависят от регистра.

[^aei]

[первый-последний]

Диапазон символов: соответствует одному символу в диапазоне от первого до последнего.

[A-Z]

.

Подстановочный знак: соответствует какому-либо одному знаку, кроме "\n".

a.e

\p{name}

Соответствует одному символу в общей категории Юникода или в именованном блоке, указанном в параметре имя.

\p{Lu}

\p{IsCyrillic}

\P{name}

Соответствует одному символу, не входящему в общую категорию Юникода или в именованный блок, указанный в параметре имя.

\P{Lu}

\P{IsCyrillic}

\w

Соответствует любому алфавитно-цифровому знаку.

\w

\W

Соответствует любому символу, не являющемуся буквой.

\W

\s

Соответствует любому знаку пробела.

\w\s

\S

Соответствует любому знаку, не являющемуся пробелом.

\s\S

\d

Соответствует любой десятичной цифре.

\d

\D

Совпадение с любым символом, не являющимся десятичной цифрой.

\D

#Привязки

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

Утверждение

Описание

Шаблон

^

Соответствие должно начинаться в начале строки.

^\d{3}

$

Соответствие должно обнаруживаться в конце строки или до символа \n в конце строки.

-\d{3}$

\A

Соответствие должно обнаруживаться в начале строки.

\A\d{3}

\Z

Соответствие должно обнаруживаться в конце строки или до символа \n в конце строки.

-\d{3}\Z

\z

Соответствие должно обнаруживаться в конце строки.

-\d{3}\z

\G

Соответствие должно обнаруживаться в той точке, где заканчивается предыдущее соответствие.

\G\(\d\)

\b

Соответствие должно обнаруживаться на границе между символом \w (алфавитно-цифровым) и символом \W (не алфавитно-цифровым).

\b\w+\s\w+\b

\B

Соответствие не должно обнаруживаться на границе \b.

\Bend\w*\b

#Конструкции группирования

Конструкции группирования отображают части выражений регулярных выражений и обычно захватывают части строки входной строки. Конструкции группирования состоят из языковых элементов, приведенных в следующей таблице. Дополнительные сведения см. в разделе Конструкции группирования.

Конструкция группирования

Описание

Шаблон

(часть_выражения)

Выделяет соответствующую часть выражения и назначает ей порядковый номер, отсчитываемый от нуля.

(\w)\1

(?<имя>часть_выражения)

Выделяет соответствующую часть выражения в именованную группу.

(?\w)\k

(?<имя1-имя2>часть_выражения)

Задает сбалансированное определение группы. Дополнительные сведения см. в подразделе "Сбалансированное определение группы" раздела Конструкции группирования.

(((?'Open'\()[^\(\)]*)+((?'Close-Open'\))[^\(\)]*)+)*(?(Open)(?!))$

(?:часть_выражения)

Определяет невыделяемую группу.

Write(?:Line)?

(?imnsx-imnsx:часть_выражения)

Применяет или отключает заданные параметры в части_выражения. Дополнительные сведения см. в разделе Параметры регулярных выражений.

A\d{2}(?i:\w+)\b

(?=часть_выражения)

Утверждение положительного просмотра вперед нулевой ширины.

\w+(?=\.)

(?!часть_выражения)

Утверждение отрицательного просмотра вперед нулевой ширины.

\b(?!un)\w+\b

(?<=часть_выражения)

Утверждение положительного просмотра назад нулевой ширины.

(?<=19)\d{2}\b

(?

Утверждение отрицательного просмотра назад нулевой ширины.

(?

(?>часть_выражения)

Часть выражения поиска без возврата (или "жадного" поиска).

[13579](?>A+B+)

#Кванторы

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

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

Описание

Шаблон

*

Соответствует предыдущему элементу ноль или более раз.

\d*\. \d

+

Соответствует предыдущему элементу один или более раз.

"be+"

?

Соответствует предыдущему элементу ноль или один раз.

"rai? n"

{n}

Предыдущий элемент повторяется ровно n раз.

",\d{3}"

{n,}

Предыдущий элемент повторяется минимум n раз.

"\d{2,}"

{n,m}

Предыдущий элемент повторяется минимум n раз, но не более, чем m раз.

"\d{3,5}"

*?

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

\d*? \. \d

+?

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

"be+?"

??

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

"rai?? n"

{n}?

Предыдущий элемент повторяется ровно n раз.

",\d{3}?"

{n,}?

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

"\d{2,}?"

{n,m}?

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

"\d{3,5}?"

#Конструкции обратных ссылок

Обратная ссылка позволяет впоследствии идентифицировать ранее найденную соответствующую часть выражения в том же регулярном выражении. В следующей таблице перечислены конструкции обратных ссылок, поддерживаемые регулярными выражениями платформы .NET Framework. Дополнительные сведения см. в разделе Конструкции обратных ссылок.

Конструкция обратных ссылок

Описание

Шаблон

\number

Обратная ссылка. Соответствует значению нумерованной части выражения.

(\w)\1

\k

Именованная обратная ссылка. Соответствует значению именованного выражения.

(?\w)\k

#Конструкции изменения

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

Конструкция изменения

Описание

Шаблон

|

Соответствует любому элементу, разделенному вертикальной чертой (|).

th(e|is|at)

(?(выражение)да | нет)

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

(?(A)A\d{2}\b|\b\d{3}\b)

(?(имя)да | нет)

Сопоставляется с частью да, если названное имя захвата имеет соответствие; в противном случае сопоставляется с необязательной частью нет.

(?")?(?(quoted).+?"|\S+\s)



#Подстановки

Подстановки – это языковые элементы регулярных выражений, которые поддерживаются в шаблонах замены. Дополнительные сведения см. в разделе Подстановки. Приведенные в следующей таблице метасимволы являются атомарными утверждениями нулевой ширины.

Знак

Описание

Шаблон

Шаблон замены

$number

Замещает часть строки, соответствующую группе номер.

\b(\w+)(\s)(\w+)\b

$3$2$1

${name}

Замещает часть строки, соответствующую именованной группе имя.

\b(?\w+)(\s)(?\w+)\b

${word2} ${word1}

$$

Подставляет литерал "$".

\b(\d+)\s?USD

$$$1

$&

Замещает копией полного соответствия.

(\$*(\d*(\.+\d+)?){1})

**$&

$`

Замещает весь текст входной строки до соответствия.

B+

$`

$'

Замещает весь текст входной строки после соответствия.

B+

$'

$+

Замещает последнюю захваченную группу.

B+(C+)

$+

$_

Замещает всю входную строку.

B+

$_

#Прочие конструкции
Прочие конструкции либо изменяют шаблон регулярных выражений, либо предоставляют сведения о нем. В следующей таблице перечислены все прочие конструкции, поддерживаемые платформой .NET Framework. Дополнительные сведения см. в разделе Другие конструкции.

Конструкция

Определение

Пример

(?imnsx-imnsx)

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

\bA(?i)b\w+\b соответствует "ABA", "Able" в "ABA Able Act"

(?#примечание)

Встроенное примечание. Примечание заканчивается первой закрывающей скобкой.

\bA(?#Matches words starting with A)\w+\b

# [до конца строки]

Комментарий режима X. Примечание начинается от знака # без обратной косой черты и продолжается до конца строки.

(?x)\bA\w+\b#Matches words starting with A




Похожие:

Лекция. Регулярные выражения iconЛекция 5 Регулярные события и регулярные выражения. Алгебра регулярных выражений. Сценарии выполнения программ. Программный монитор Дейкстры. Пример проектирования лса работа
Ведение машины состояний sm определяет последовательность внешних или внутренних (управляющих) событий, которую можно назвать сценарием...
Лекция. Регулярные выражения icon[1]анализ методов обработки текста 3 1 Регулярные выражения 3
Генерация детерминированного конечного автомата на основании недетерминированного 7
Лекция. Регулярные выражения icon[1]анализ методов обработки текста 3 1 Регулярные выражения 3
Генерация детерминированного конечного автомата на основании недетерминированного 7
Лекция. Регулярные выражения iconК. Е. Карасёв Введение в теорию конечных автоматов Учебное пособие
Тьюринга, теория рекурсивных функций. Также в пособие включены сведения, имеющие практическое применение в области программирования:...
Лекция. Регулярные выражения iconПрограмма по математике для поступающих на базе основного общего образования (9 классов) в 2012 году Алгебра
Алгебраические выражения. Буквенные выражения (выражения с переменными). Допустимые значения переменных, входящих в алгебраические...
Лекция. Регулярные выражения iconГлава I. Слабо регулярные кольца и модули
В частности, И. И. Сахаевым полусовершенные кольца были охарактеризованы, как слабо регулярные кольца, у которых всякое множество...
Лекция. Регулярные выражения iconУрока Элементы содержания урока Требования к уровню подготовки обучающихся
Числовые выражения, значение числового выражения, значение алгебраического выражения, допустимые
Лекция. Регулярные выражения iconТесты по теме «Алгебраические выражения» 7 класс Тест №1 Числовые выражения ( начало второго урока по теме)
...
Лекция. Регулярные выражения iconТурция столица, крупные города: Анкара (Ankara) Основные курорты
Москва — Измир раз в неделю. Регулярные рейсы «Аэрофлота» в Стамбул и Анталию летают ежедневно, кроме того, есть регулярные перелеты...
Лекция. Регулярные выражения iconБилет №13 Логические величины, операции, выражения. Логические выражения в качестве условий в ветвящихся и циклических алгоритмах
Для того чтобы понять работу ветвящихся и циклических алгоритмов, рассмотрим понятие логического выражения
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org