Ogólnie rzecz biorąc, z domyślnymi ustawieniami ^
i $
kotwicami to dobry sposób na upewnienie się, że wyrażenie regularne pasuje do całego ciągu.
Jednak kilka zastrzeżeń:
Jeśli masz zmianę w swoim wyrażeniu regularnym, pamiętaj, aby umieścić swoje wyrażenie regularne w grupie nieprzechwytywanej przed otoczeniem go za pomocą ^
i $
:
^foo|bar$
oczywiście różni się od
^(?:foo|bar)$
Ponadto ^
i $
może mieć inne znaczenie (początek / koniec wiersza zamiast początku / końca łańcucha ), jeśli określone opcje są ustawione. W edytorach tekstu obsługujących wyrażenia regularne jest to zwykle zachowanie domyślne. W niektórych językach, szczególnie w Rubim, tego zachowania nie można nawet wyłączyć.
Dlatego istnieje inny zestaw kotwic, które na pewno będą pasować tylko na początku / końcu całego ciągu:
\A
dopasowuje na początku ciągu.
\Z
dopasowania na końcu łańcucha lub przed końcowym podziałem wiersza.
\z
pasuje na samym końcu ciągu.
Ale nie wszystkie języki obsługują te kotwice, w szczególności JavaScript.
string.Contains
będzie działać proste ?