Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
171
Добавлен:
17.04.2018
Размер:
32.16 Кб
Скачать
    1. Группировки

Группировка применяется для создания «подмасок» («подшаблонов») внутри шаблона, которые в дальнейшем могут быть использованы для замены или вывода во внешнюю переменную. Совпадения с группами нумеруются и поэтому могут быть доступны по номеру для замены или получения данных. В разных языках программирования обращение к найденным номерам групп — реализуется различно. Это может быть \1 (PHP) или $1 (Java)

Примеры замены с помощью групп:

шаблон ([1-3]+)0([4-6]+)

строка 0001230456000

Найден текст 1230456 позиция старта 3 позиция окончания 10

строка или шаблон замены $20$1

результат 0004560123000

шаблон ([1-3]+)0([4-6]+)

строка 0001230456000

Найден текст 1230456 позиция старта 3 позиция окончания 10

строка или шаблон замены $0

результат 0001230456000

    1. Утверждения

Утверждения проверяют символы находящиеся до или после текущего символа. Утверждения делятся на позитивные и негативные. Позитивные:?= и ?<= принимают true при совпадении, а негативные ?! и <! при НЕ совпадении.

Утверждения Таблица 5

шаблон \w+(?=;)

(?=шаблон)

Позитивный просмотр вперёд

(?<=шаблон)

Позитивный просмотр назад

(?!шаблон)

Негативный просмотр вперёд

(?<!шаблон)

Негативный просмотр назад

строка abcd abcd; abcd

Найден текст abcd позиция старта 5 позиция окончания 9

шаблон test(?!success)

строка test test succeess testsuccess test

Найден текст test позиция старта 0 позиция окончания 4

Найден текст test позиция старта 5 позиция окончания 9

Найден текст test позиция старта 31 позиция окончания 35

    1. Условные подвыражения

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

Условные подвыражения Таблица 6

шаблон (?<!Moscow\s)Zelenograd

(?(утверждение)то|иначе)

Если утверждение возвращает true, то выполняется поиск по шаблону  то, иначе по шаблону  иначе

(?(n)то|иначе)

Если n-я группа вернула true, то выполняется поиск по шаблону то, иначе по шаблону иначе.

строка The Miet is best vuz in Zelenograd. Address: Moscow Zelenograd

результат The Miet is best vuz in Moscow. Address: Moscow Zelenograd

    1. Флаги

Флаги позволяют устанавливать модификацию, распространяющуюся на весть шаблон. Наиболее часто флаги по игнорировании больших и маленьких букв и применение

В некоторых языках программирования (JavaScript, PHP) флаги это часть самого шаблона, например, /((?=MIET)+)/i позволит найти все варианты совпадений совпадения, включающих слово МИЭТ не зависимо от регистра. Т.е. для строки содержащей миэт или Миэт тоже сработает. Для других языков, например Java, для организации регистронезависимого поиска нужно присвоить шаблону определенное свойство: Pattern pattern = Pattern.compile(strPattern,

Pattern.CASE_INSENSITIVE);.

Флаги Таблица 7

g

Глобальный поиск (обрабатываются все совпадения с шаблоном поиска).

i

Регистронезависимый поиск

m

Многострочный поиск.

s

Текст трактуется как одна строка, в этом случае метасимволу . (точка) соответствует любой одиночный символ, включая символ новой строки;

Соседние файлы в папке Интернет технологии