Мы уже изучили наиболее распространенные метасимволы для соответствия: цифрам — \d
, пробельным символам — \s
и буквенно-цифровым символам — \w
, но регулярные выражения также предоставляют способ указания противоположных наборов значений для каждого из этих метасимволов с помощью их написания в верхнем регистре. Например, \D
соответствует любому символу, который не является цифрой, \S
— любому не пробельному символу, а \W
— любому не буквенно-цифровому символу (например, пунктуация).
Кроме того, существует еще один метасимвол \b
, который соответствует границе между словом и несловесным символом. Он является наиболее полезным при захвате целых слов (например, используя шаблон \w+\b
).
Одна из концепций, которую мы не будем подробно изучать на этих уроках — это обратные ссылки, так как они различаются, в зависимости от реализации в конкретных системах/языках программирования. Однако многие системы позволяют вам ссылаться на ваши захваченные группы символов, используя \0
(соответствие полному тексту), \1
(соответствие группе №1), \2
(соответствие группе №2) и т.д. Это полезно, например, когда вы находитесь в текстовом редакторе, выполняя поиск и замену с помощью регулярных выражений. Например, для того, чтобы поменять местами два числа, вы можете выполнить поиск с помощью шаблона (\d+)-(\d+)
, а замену с помощью шаблона \2-\1
, чтобы сделать второе полученное число первым, а первое полученное число вторым.
Ниже находятся несколько различных строк, для соответствия которым вы можете использовать метасимволы, изученные в ходе этих уроков.
Задание | Текст | |
Соответствовать | The quick brown fox jumps over the lazy dog. | ![]() |
Соответствовать | There were 614 instances of students getting 90.0% or above. | ![]() |
Соответствовать | The FCC had to censor the network for saying &$#*@!. | ![]() |
Решение | Самым ленивым решением данной проблемы может быть простое регулярное выражение .*. |
Отличные уроки по регулярным выражениям, очень простые и понятные, которые, "не отходя от кассы" можно закрепить на практике. Огромное спасибо создателям! Продолжайте в том же духе!
Спасибо, очень приятно))