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.Containsbędzie działać proste ?