Як правило, і за замовчуванням, ^і $прив’язки - це хороший спосіб забезпечити відповідність регулярного виразу цілому рядку.
Однак кілька застережень:
Якщо у вас є чергування в своєму регулярному виразі, обов'язково укладіть регулярний вираз в не захоплюючи групи , перш ніж навколишній ^і $:
^foo|bar$
звичайно відрізняється від
^(?:foo|bar)$
Крім того, ^і $може набувати іншого значення (початок / кінець рядка замість початку / кінця рядка ), якщо встановлено певні параметри. У текстових редакторах, які підтримують регулярні вирази, зазвичай це поведінка за замовчуванням. У деяких мовах, особливо Ruby, таку поведінку навіть не можна вимкнути.
Тому існує інший набір прив’язок, які гарантовано збігатимуться лише на початку / в кінці цілого рядка:
\A збіги на початку рядка.
\Z збіги в кінці рядка або перед остаточним розривом рядка.
\z збіги в самому кінці рядка.
Але не всі мови підтримують ці прив'язки, особливо JavaScript.
string.Containsбуде працювати?