До этого момента мы писали регулярные выражения, которые лишь частично соответствовали фрагментам данных из текста. Иногда это нежелательно, например, представьте, что нам нужно найти слово success
в лог-файле. Мы ведь не хотим, чтобы наш шаблон соответствовал строке с содержимым Error: unsuccessful operation
? Вот почему регулярные выражения рекомендуется писать как можно конкретнее, чтобы избежать ложных срабатываний при сопоставлении с текстом.
Одним из способов ужесточения наших шаблонов является указание начала и конца строки с помощью метасимволов ^
(начало строки) и $
(конец строки). В примере, указанном выше, мы можем использовать шаблон ^success
, чтобы соответствовать только тем строкам, которые начинаются со слова success
, а не строке Error: unsuccessful operation
. И если вы будете комбинировать эти два метасимвола, то вы создадите шаблон, который будет полностью соответствовать строке в её начале и в её конце.
Обратите внимание, использование метасимвола ^
в квадратных скобках [^...]
приводит к исключению определенных символов, а без квадратных скобок — к обозначению начала строки.
Попробуйте написать шаблон, соответствующий указанной ниже строке, используя метасимволы начала и конца строки.
Задание | Текст | |
Соответствовать | Mission: successful | ![]() |
Пропустить | Last Mission: unsuccessful | ![]() |
Пропустить | Next Mission: successful upon capture of target | ![]() |
Решение | Выражение Mission: successful будет соответствовать каждой строке, поэтому нам нужно использовать метасимволы начала и конца строки в регулярке ^Mission: successful$, чтобы соответствовать только той строке, которая начинается с Mission и заканчивается successful . |