Бен Форта - Изучаем регулярные выражения
Название: | Изучаем регулярные выражения | |
Автор: | Бен Форта | |
Жанр: | Другие языки и системы программирования | |
Изадано в серии: | неизвестно | |
Издательство: | Диалектика | |
Год издания: | 2019 | |
ISBN: | 978-5-041394-2-4 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Изучаем регулярные выражения"
Аннотация к этой книге отсутствует.
Читаем онлайн "Изучаем регулярные выражения". [Страница - 27]
]+-
с завершающими пробелами. Но обратите
внимание на то, что шаблон
\ w+ заключен в круглые скобки,
а следовательно, превращен в подвыражение. Это подвыра
жение служит не для обнаружения повторяющихся совпа
дений, поскольку такие совпадения в данном примере от
сутствуют, а просто для группирования выражения с целью
обозначить его как таковое для дальнейшего распознавания
и применения. И завершает данное регулярное выражение
обратная ссылка
\1,
обеспечивающая совпадение с тем же
самым текстом, что и в первой совпавшей группе. Так, если
подвыражение
обнаружит совпадение со словом
( \w+)
то оно будет обнаружено и по обратной ссылке
подвыражение
( \ w+)
3
Это блок текста,
повторяются,
хотя
в котором несколько слов
и не должны повторяться.
of,
А если
обнаружит совпадение со словом
то оно будет обнаружено и по обратной ссылке
and)
\1.
and,
\ 1.
(of,
are и
Совпадение с обратными ссылками
1
113
Примечание
Термин обратная ссылка обозначает то обстоятельство, что
одни сущности ссылаются обратно на другие в предь~дущем
выражении.
Что же конкретно обозначает обратная ссылка \Н Она
обозначает совпадение с первым подвыражением в ша
блоне, обратная ссылка
совпадение со вторым под
\2 -
выражением, обратная ссылка
\3-
совпадение с третьим
подвыражением и т.д. Таким образом, шаблон
[ ] +\ 1 обеспечивает
[ ] + ( \ w+)
совпадение сначала с любым словом,
а затем с тем же самым словом снова, что и было продемон
стрировано в приведенном выше примере.
Предупреждение
К сожалению, синтаксис обратных ссылок заметно отлича
ется в разных реализациях регулярных выражений. Так. в
JavaScript,
как. впрочем. и в текстовом редакторе
vi,
знак
\
служит для обозначения обратной ссылки, за исключением
операций замены, в которых применяется знак
Perl
\1
для этой же цели применяется знак
$,
$.
А в языке
и поэтому вместо
обратная ссылка на первое выражение в шаблоне обо
значается как
$1.
На платформе
.NET
регулярные выражения
поддерживаются таким образом, чтобы возвращать объект со
свойством
Groups,
содержащим обнаруженные совпадения,
и поэтому обратная ссылка
делается на
match. Groups [1]
первое совпадение, обнаруженное на языке С#, а обратная
ссылка
match. Groups (1) -
наруженное на языке
РНР возвращается в массиве
ссылка
$matches [1]
на то же самое совпадение, об
Visual Basic. Аналогичная
информация в
$matches, и поэтому обратная
делается на первое обнаруженное со
впадение, хотя такое поведение можно изменить, установив
соответствующие признаки. И наконец, в
Java
и
Python
вращается объект совпадения, содержащий массив
воз
qroup.
Особенности отдельных реализаций регулярных выражений
перечислены в приложении к данной книге.
1
Совет
Обратные ссылки можно рассматривать как подобные пере
менным.
114
Урок
8
Применение обратных ссылок
Итак, рассмотрев особенности применения обратных
ссылок, вернемся снова к примеру с заголовками в формате
HTML.
Используя обратные ссылки, можно составить ша
блон, обеспечивающий совпадение с любым начальным и
конечным
дескрипторами
разметки
заголовка,
игнорируя
любые пары несовпадений, как демонстрируется в приве
денном ниже примере.
Текст
Welcome to my Homepage
Content is divided into two sections:
SQL
Information about SQL.
RegEx
Information about Regular Expressions.
This is not valid HTML
Реrvлярное выражение
< [hH] ( [1-6]) >. *?
Результат
~~~
. . . . . . . . . .:111111•
•11•••-
Content is divided into two sections:
---
Information about SQL.
Information about Regular Expressions.
This is not valid HTML
Анализ
И в данном примере обнаружены три совпадения: од
но
-
с парой дескрипторов разметки
дескрипторов разметки
( [ 1- 6] ) >
.
и два -
с парами
Как и прежде, шаблон<
[hH]
обеспечивает совпадение с любым начальным
Совпадение с обратными ссылками
115
дескриптором разметки заголовка. Но, в отличие от преж
него, интервал
[ 1- 6]
заключен в круглые скобки, а следова
тельно, он превращен в подвыражение. Таким --">
с завершающими пробелами. Но обратите
внимание на то, что шаблон
\ w+ заключен в круглые скобки,
а следовательно, превращен в подвыражение. Это подвыра
жение служит не для обнаружения повторяющихся совпа
дений, поскольку такие совпадения в данном примере от
сутствуют, а просто для группирования выражения с целью
обозначить его как таковое для дальнейшего распознавания
и применения. И завершает данное регулярное выражение
обратная ссылка
\1,
обеспечивающая совпадение с тем же
самым текстом, что и в первой совпавшей группе. Так, если
подвыражение
обнаружит совпадение со словом
( \w+)
то оно будет обнаружено и по обратной ссылке
подвыражение
( \ w+)
3
Это блок текста,
повторяются,
хотя
в котором несколько слов
и не должны повторяться.
of,
А если
обнаружит совпадение со словом
то оно будет обнаружено и по обратной ссылке
and)
\1.
and,
\ 1.
(of,
are и
Совпадение с обратными ссылками
1
113
Примечание
Термин обратная ссылка обозначает то обстоятельство, что
одни сущности ссылаются обратно на другие в предь~дущем
выражении.
Что же конкретно обозначает обратная ссылка \Н Она
обозначает совпадение с первым подвыражением в ша
блоне, обратная ссылка
совпадение со вторым под
\2 -
выражением, обратная ссылка
\3-
совпадение с третьим
подвыражением и т.д. Таким образом, шаблон
[ ] +\ 1 обеспечивает
[ ] + ( \ w+)
совпадение сначала с любым словом,
а затем с тем же самым словом снова, что и было продемон
стрировано в приведенном выше примере.
Предупреждение
К сожалению, синтаксис обратных ссылок заметно отлича
ется в разных реализациях регулярных выражений. Так. в
JavaScript,
как. впрочем. и в текстовом редакторе
vi,
знак
\
служит для обозначения обратной ссылки, за исключением
операций замены, в которых применяется знак
Perl
\1
для этой же цели применяется знак
$,
$.
А в языке
и поэтому вместо
обратная ссылка на первое выражение в шаблоне обо
значается как
$1.
На платформе
.NET
регулярные выражения
поддерживаются таким образом, чтобы возвращать объект со
свойством
Groups,
содержащим обнаруженные совпадения,
и поэтому обратная ссылка
делается на
match. Groups [1]
первое совпадение, обнаруженное на языке С#, а обратная
ссылка
match. Groups (1) -
наруженное на языке
РНР возвращается в массиве
ссылка
$matches [1]
на то же самое совпадение, об
Visual Basic. Аналогичная
информация в
$matches, и поэтому обратная
делается на первое обнаруженное со
впадение, хотя такое поведение можно изменить, установив
соответствующие признаки. И наконец, в
Java
и
Python
вращается объект совпадения, содержащий массив
воз
qroup.
Особенности отдельных реализаций регулярных выражений
перечислены в приложении к данной книге.
1
Совет
Обратные ссылки можно рассматривать как подобные пере
менным.
114
Урок
8
Применение обратных ссылок
Итак, рассмотрев особенности применения обратных
ссылок, вернемся снова к примеру с заголовками в формате
HTML.
Используя обратные ссылки, можно составить ша
блон, обеспечивающий совпадение с любым начальным и
конечным
дескрипторами
разметки
заголовка,
игнорируя
любые пары несовпадений, как демонстрируется в приве
денном ниже примере.
Текст
Welcome to my Homepage
Content is divided into two sections:
SQL
Information about SQL.
RegEx
Information about Regular Expressions.
This is not valid HTML
Реrvлярное выражение
< [hH] ( [1-6]) >. *?
Результат
~~~
. . . . . . . . . .:111111•
•11•••-
Content is divided into two sections:
---
Information about SQL.
Information about Regular Expressions.
This is not valid HTML
Анализ
И в данном примере обнаружены три совпадения: од
но
-
с парой дескрипторов разметки
дескрипторов разметки
( [ 1- 6] ) >
.
и два -
с парами
Как и прежде, шаблон<
[hH]
обеспечивает совпадение с любым начальным
Совпадение с обратными ссылками
115
дескриптором разметки заголовка. Но, в отличие от преж
него, интервал
[ 1- 6]
заключен в круглые скобки, а следова
тельно, он превращен в подвыражение. Таким --">
Книги схожие с «Изучаем регулярные выражения» по жанру, серии, автору или названию:
Бен Форта - Освой самостоятельно регулярные выражения. 10 минут на урок Жанр: Другие языки и системы программирования Год издания: 2005 Серия: Освой самостоятельно |
Майкл Фицджеральд - Регулярные выражения: основы Жанр: Другие языки и системы программирования Год издания: 2015 |
Джеффри Фридл - Регулярные выражения. 2-е изд. Жанр: Другие языки и системы программирования Год издания: 2003 Серия: Библиотека программиста |
Другие книги автора «Бен Форта»:
Бен Форта - Освой самостоятельно регулярные выражения. 10 минут на урок Жанр: Другие языки и системы программирования Год издания: 2005 Серия: Освой самостоятельно |
Бен Форта - Освой самостоятельно SQL. 10 минут на урок Жанр: Базы данных Год издания: 2005 Серия: Освой самостоятельно |
Бен Форта - SQL за 10 минут Жанр: Другие языки и системы программирования Год издания: 2021 |
Бен Форта - SQL за 10 минут Жанр: Базы данных Год издания: 2014 |