Regular expressions - регулярные выражения (Java) презентация

Содержание


Презентации» Информатика» Regular expressions - регулярные выражения (Java)
Regular expressionsОпределение
 Формальный язык поиска и осуществления манипуляций с подстроками в тексте.
Символы
 x		==>	символ x
 \\		==>	обратный слеш
 \xhh		==>	символ с кодом U+00hh
 \xhhhh	==>	символ сСимвольные классы
 Простой класс:
 	[abc]	==>	a, b или c
 Регулярное выражение: [ab]
Символьные классы
 Отрицание:
 	[^abc]	==>	любой символ, кроме a, b, c
 Регулярное выражение:Символьные классы
 Диапазон:
 	[a-zA-Z]		==>	от a до z или от A доСимвольные классы
 Объединение:
 	[a-z[A-Z]]	==>	от a до z или от A доСимвольные классы
 Пересечение:
 	[a-z&&[def]]	==>	d, e или f
 Регулярное выражение: [a-d&&c-f]
 ВходнаяСимвольные классы
 Вычитание:
 	[a-z&&[^def]]	==>	от a до c или от g доСимвольные классы Java
 Эквиваленты методов класса Character:
 \p{javaLowerCase}	~	isLowerCase
 \p{javaUpperCase}	~	isUpperCase
 \p{javaWhitespace}	~	isWhitespace
 РегулярноеПредопределенные классы
 .	==>	любой символ
 Регулярное выражение: ...
 Входная строка: abcdefgh
 РегулярноеПредопределенные классы
 \d	==>	цифра, [0-9]
 \D	==>	не цифра, [^\d]
 Регулярное выражение: \d\D
 ВходнаяПредопределенные классы
 \s	==>	пробельный символ, [ \t\n\f\r\x0b]
 \S	==>	непробельный символ, [^\s]
 Регулярное выражение:Предопределенные классы
 \w	==>	символ слова, [a-zA-Z_\d]
 \W	==>	отрицание \w, [^\w]
 Регулярное выражение: \w\W
Границы
 ^		==>	начало строки
 Регулярное выражение: ^ab
 Входная строка: ababab
 $		==>	конец строки
Границы
 \b		==>	граница слова
 \B		==>	отрицание \b
 Регулярное выражение: abc\b
 Входная строка: abcГраницы
 \A	==>	начало ввода
 Регулярное выражение: \Aabc
 Входная строка:
 abc abc
 abcГраницы
 \z		==>	конец ввода
 Регулярное выражение: abc\z
 Входная строка:
 abc abc
 abcГраницы
 \Z		==>	конец ввода, как и \z, но может включать ограничитель строки
Ограничители строк
 '\n'		==>	LF (новая строка)
 '\r'			==>	CR (возврат каретки)
 "\r\n"		==>	CR+LF
 '\u0085'	==>	следующая строка
Квантификаторы
 Квантификатор определяет повторяемость.
 Жадный квантификатор определяет максимально возможную подстроку.
 ЛенивыйКвантификаторы
 X?	==>	один или ноль раз (жадный)
 Регулярное выражение: ab?
 Входная строка:Квантификаторы
 X*	==>	ноль или более раз (жадный)
 Регулярное выражение: ab*
 Входная строка:Квантификаторы
 X+	==>	один или более раз (жадный)
 Регулярное выражение: ab+
 Входная строка:Квантификаторы
 X{n}		==>	ровно n раз (жадный)
 или (совпадает по результату применения)
 X{n}?	==>	ровноКвантификаторы
 X{n,}		==>	не менее n раз (жадный)
 Регулярное выражение: ab{2,}
 Входная строка:Квантификаторы
 X{n,m}	==>	от n до m раз (жадный)
 Регулярное выражение: ab{1,2}
 ВходнаяСверхжадные квантификаторы
 При поиске в строке aab с помощью рег. выраженияСверхжадные квантификаторы
 Сверхжадный квантификатор действует как жадный, но никогда не откатываетсяСверхжадные квантификаторы
 Чтобы сделать жадный квантификатор сверхжадным достаточно добавить + справаЛогические операции
 XY	==>	X за которым следует Y (AND)
 X|Y	==>	X илиY (OR)
Группы
 Выражение в круглых скобка - группа.
 Каждая группа имеет номер.
Группы
 (A)(B(C)(?:D))
 (A)			==>	группа номер 1
 (B(C)(?:D))	==>	группа номер 2
 (C)			==>	группа номер 3
Группы
 Группы могут быть использованы по номеру в регулярном выражении сЭкранирование символов
 Для представления специальных символов:
 	\  .  |Экранирование символов
 Для указания диапазона экранирования можно использовать \Q и/или \E
Упреждающий просмотр вперед
 Позитивный: (?=X)
 Регулярное выражение: a(?=b)
 Входная строка: abacab
Просмотр назад
 Позитивный: (?<=X)
 Регулярное выражение: (?<=b)a
 Входная строка: abacab
 Негативный:Режимы
 Влияют на работу регулярных выражений.
 Каждый режим имеет буквенный код.Режимы
 Чтобы включить режим, достаточно предварить регулярное выражение комбинацией: (?КОД_РЕЖИМА).
 	(?m)		(?s)
Режимы
 COMMENTS			==>		x
 Режим комментариев. Пробельные символы игнорируются, после символа # можноРежимы
 CASE_INSENSITIVE 	==>		i
 Игнорирует регистр символов.
 UNIX_LINES 			==>		d
 Разделитель строк толькоРежимы
 UNICODE_CASE 		==>		u
 Игнорирует регистр символов.
 MULTILINE 			==>		m
 Многострочный режим (по



Слайды и текст этой презентации
Слайд 1
Описание слайда:
Regular expressions


Слайд 2
Описание слайда:
Определение Формальный язык поиска и осуществления манипуляций с подстроками в тексте. Основан на использовании метасимволов.

Слайд 3
Описание слайда:
Символы x ==> символ x \\ ==> обратный слеш \xhh ==> символ с кодом U+00hh \xhhhh ==> символ с кодом U+hhhh \n ==> перевод строки \r ==> возврат каретки \t ==> табуляция

Слайд 4
Описание слайда:
Символьные классы Простой класс: [abc] ==> a, b или c Регулярное выражение: [ab] Входная строка: accddba

Слайд 5
Описание слайда:
Символьные классы Отрицание: [^abc] ==> любой символ, кроме a, b, c Регулярное выражение: [^ab] Входная строка: acdba

Слайд 6
Описание слайда:
Символьные классы Диапазон: [a-zA-Z] ==> от a до z или от A до Z Регулярное выражение: [a-cA-Z] Входная строка: adAcdh

Слайд 7
Описание слайда:
Символьные классы Объединение: [a-z[A-Z]] ==> от a до z или от A до Z Тоже самое, что и [a-zA-Z]

Слайд 8
Описание слайда:
Символьные классы Пересечение: [a-z&&[def]] ==> d, e или f Регулярное выражение: [a-d&&c-f] Входная строка: accdddeab

Слайд 9
Описание слайда:
Символьные классы Вычитание: [a-z&&[^def]] ==> от a до c или от g до z Регулярное выражение: [a-d&&[^c-f]] Входная строка: accdddeab

Слайд 10
Описание слайда:
Символьные классы Java Эквиваленты методов класса Character: \p{javaLowerCase} ~ isLowerCase \p{javaUpperCase} ~ isUpperCase \p{javaWhitespace} ~ isWhitespace Регулярное выражение: \p{javaUpperCase} \p{javaLowerCase} Входная строка: Текст

Слайд 11
Описание слайда:
Предопределенные классы . ==> любой символ Регулярное выражение: ... Входная строка: abcdefgh Регулярное выражение: .. Входная строка: abcde

Слайд 12
Описание слайда:
Предопределенные классы \d ==> цифра, [0-9] \D ==> не цифра, [^\d] Регулярное выражение: \d\D Входная строка: ab8ab8

Слайд 13
Описание слайда:
Предопределенные классы \s ==> пробельный символ, [ \t\n\f\r\x0b] \S ==> непробельный символ, [^\s] Регулярное выражение: \s\S Входная строка: ab 8 ab8

Слайд 14
Описание слайда:
Предопределенные классы \w ==> символ слова, [a-zA-Z_\d] \W ==> отрицание \w, [^\w] Регулярное выражение: \w\W Входная строка: ab*8&ab8

Слайд 15
Описание слайда:
Границы ^ ==> начало строки Регулярное выражение: ^ab Входная строка: ababab $ ==> конец строки Регулярное выражение: ab$ Входная строка: ababab

Слайд 16
Описание слайда:
Границы \b ==> граница слова \B ==> отрицание \b Регулярное выражение: abc\b Входная строка: abc abcd

Слайд 17
Описание слайда:
Границы \A ==> начало ввода Регулярное выражение: \Aabc Входная строка: abc abc abc abc

Слайд 18
Описание слайда:
Границы \z ==> конец ввода Регулярное выражение: abc\z Входная строка: abc abc abc abc

Слайд 19
Описание слайда:
Границы \Z ==> конец ввода, как и \z, но может включать ограничитель строки Регулярное выражение: abc\Z Входная строка: abc abc abc abc<ограничитель строки>

Слайд 20
Описание слайда:
Ограничители строк '\n' ==> LF (новая строка) '\r' ==> CR (возврат каретки) "\r\n" ==> CR+LF '\u0085' ==> следующая строка '\u2028' ==> разделитель строки '\u2029' ==> разделитель параграфа

Слайд 21
Описание слайда:
Квантификаторы Квантификатор определяет повторяемость. Жадный квантификатор определяет максимально возможную подстроку. Ленивый квантификатор определяет минимально возможную подстроку.

Слайд 22
Описание слайда:
Квантификаторы X? ==> один или ноль раз (жадный) Регулярное выражение: ab? Входная строка: aabcabbb X?? ==> один или ноль раз (ленивый) Регулярное выражение: ab?? Входная строка: aabcabbb

Слайд 23
Описание слайда:
Квантификаторы X* ==> ноль или более раз (жадный) Регулярное выражение: ab* Входная строка: aabcabbb X*? ==> ноль или более раз (ленивый) Регулярное выражение: ab*? Входная строка: aabcabbb

Слайд 24
Описание слайда:
Квантификаторы X+ ==> один или более раз (жадный) Регулярное выражение: ab+ Входная строка: aabcabbb X+? ==> один или более раз (ленивый) Регулярное выражение: ab+? Входная строка: aabcabbb

Слайд 25
Описание слайда:
Квантификаторы X{n} ==> ровно n раз (жадный) или (совпадает по результату применения) X{n}? ==> ровно n раз (ленивый) Регулярное выражение: ab{2} или ab{2}? Входная строка: aabcabbb

Слайд 26
Описание слайда:
Квантификаторы X{n,} ==> не менее n раз (жадный) Регулярное выражение: ab{2,} Входная строка: aabcabbb X{n,}? ==> не менее n раз (ленивый) Регулярное выражение: ab{2,}? Входная строка: aabcabbb

Слайд 27
Описание слайда:
Квантификаторы X{n,m} ==> от n до m раз (жадный) Регулярное выражение: ab{1,2} Входная строка: aabcabbb X{n,m}? ==> от n до m раз (ленивый) Регулярное выражение: ab{1,2}? Входная строка: aabcabbb

Слайд 28
Описание слайда:
Сверхжадные квантификаторы При поиске в строке aab с помощью рег. выражения a+b шаги анализатора: a+ ==> a (соответствует) a+ ==> aa (соответствует) a+ ==> aab (не соответствует) откат назад (возврат b) к последнему соответствию (aa) и проверка a+b: a+b ==> aab (соответствует)

Слайд 29
Описание слайда:
Сверхжадные квантификаторы Сверхжадный квантификатор действует как жадный, но никогда не откатывается назад. a++ ==> a (соответствует) a++ ==> aa (соответствует) a++ ==> aab (не соответствует) Последний символ ввода (b) прочтен, соответствие не найдено.

Слайд 30
Описание слайда:
Сверхжадные квантификаторы Чтобы сделать жадный квантификатор сверхжадным достаточно добавить + справа от квантификатора: X? ==> X?+ X{n} ==> X{n}+ X* ==> X*+ X{n,} ==> X{n,}+ X+ ==> X++ X{n,m} ==> X{n,m}+ Сверхжадные квантификаторы работают как правило быстрее, чем жадные.

Слайд 31
Описание слайда:
Логические операции XY ==> X за которым следует Y (AND) X|Y ==> X илиY (OR) Приоритет AND выше чем OR. Регулярное выражение: aa|b Входная строка: aabcabbb

Слайд 32
Описание слайда:
Группы Выражение в круглых скобка - группа. Каждая группа имеет номер. Группы нумеруются слева направо, начиная с единицы (номер может быть больше 9) Чтобы группа не нумеровалась, она должна начинаться с (?:

Слайд 33
Описание слайда:
Группы (A)(B(C)(?:D)) (A) ==> группа номер 1 (B(C)(?:D)) ==> группа номер 2 (C) ==> группа номер 3 (?:D) ==> группа без номера

Слайд 34
Описание слайда:
Группы Группы могут быть использованы по номеру в регулярном выражении с помощью синтаксиса: \НОМЕР_ГРУППЫ Регулярное выражение: (aab)\W\1 Входная строка: aab aab

Слайд 35
Описание слайда:
Экранирование символов Для представления специальных символов: \ . | + * ? [ ] ( ) { } ^ $ используют экранирование с помощью обратного слеша: \\ \. \\ \+ \* \? \[ \] \( \) \{ \} \^ \$

Слайд 36
Описание слайда:
Экранирование символов Для указания диапазона экранирования можно использовать \Q и/или \E \Q ==> начало диапазона \E ==> окончание диапазона Регулярное выражение: \Q\(*\E(a)\1 Входная строка: ab\(*aa

Слайд 37
Описание слайда:
Упреждающий просмотр вперед Позитивный: (?=X) Регулярное выражение: a(?=b) Входная строка: abacab Негативный: (?!X) Регулярное выражение: a(?!b) Входная строка: abacab

Слайд 38
Описание слайда:
Просмотр назад Позитивный: (?<=X) Регулярное выражение: (?<=b)a Входная строка: abacab Негативный: (?<!X) Регулярное выражение: (?<!b) a Входная строка: abacab

Слайд 39
Описание слайда:
Режимы Влияют на работу регулярных выражений. Каждый режим имеет буквенный код. COMMENTS ==> x CASE_INSENSITIVE ==> i UNIX_LINES ==> d DOTALL ==> s UNICODE_CASE ==> u MULTILINE ==> m

Слайд 40
Описание слайда:
Режимы Чтобы включить режим, достаточно предварить регулярное выражение комбинацией: (?КОД_РЕЖИМА). (?m) (?s) Если нужно включить сразу несколько режимов, можно писать несколько кодов: (?iu)

Слайд 41
Описание слайда:
Режимы COMMENTS ==> x Режим комментариев. Пробельные символы игнорируются, после символа # можно писать комментарий к рег. выражению. Регулярное выражение: (?x)a bc #comment Входная строка: abcab

Слайд 42
Описание слайда:
Режимы CASE_INSENSITIVE ==> i Игнорирует регистр символов. UNIX_LINES ==> d Разделитель строк только CR (\r) DOTALL ==> s Точка (.) может включать \n

Слайд 43
Описание слайда:
Режимы UNICODE_CASE ==> u Игнорирует регистр символов. MULTILINE ==> m Многострочный режим (по умолчанию $ - конец ввода).


Скачать презентацию на тему Regular expressions - регулярные выражения (Java) можно ниже:

Похожие презентации