В некоторых случаях мы можем знать наперед, что есть определенные символы, которые мы не хотим сопоставлять, например, мы хотим найти все телефонные номера, которые не заканчиваются на 00.
Для этого мы можем использовать выражение, которое исключает определенные символы, применяя квадратные скобки и символ ^
. Например, шаблон [^abc]
будет соответствовать любому одиночному символу, кроме букв a
, b
или c
.
В следующем задании попробуйте написать шаблон, который соответствует только животным (hog
, dog
, но не bog
). Обратите внимание, большинство шаблонов этого типа также могут быть написаны и с использованием концепции, рассмотренной на предыдущем уроке. Имея два возможных варианта решения, вы можете выбирать, какой из них проще и понятнее реализовать.
Задание | Текст | |
Соответствовать | hog | ![]() |
Соответствовать | dog | ![]() |
Пропустить | bog | ![]() |
Решение | Самым простым решением для сопоставления любой строки, которая заканчивается на og , но не является bog , был бы шаблон [^b]og. В качестве альтернативы вы можете использовать вариант решения из предыдущего урока и применить [hd]og для сопоставления hog и dog , но не bog . Обратите внимание, что это (второе) решение имеет ограничение в количестве строк для соответствия. |