Im Allgemeinen und mit den Standardeinstellung, ^
und $
Anker ist ein guter Weg , um sicherzustellen , dass ein regulärer Ausdruck eine ganze Zeichenfolge übereinstimmt.
Ein paar Einschränkungen:
Wenn Ihre Regex eine Abwechslung aufweist, müssen Sie Ihre Regex in eine nicht erfassende Gruppe einschließen, bevor Sie sie mit ^
und umgeben $
:
^foo|bar$
ist natürlich anders als
^(?:foo|bar)$
Außerdem ^
und $
kann eine andere Bedeutung annehmen (Anfang / Ende der Zeile anstelle von Anfang / Ende der Zeichenfolge ), wenn bestimmte Optionen festgelegt sind. In Texteditoren, die reguläre Ausdrücke unterstützen, ist dies normalerweise das Standardverhalten. In einigen Sprachen, insbesondere in Ruby, kann dieses Verhalten nicht einmal ausgeschaltet werden.
Daher gibt es einen weiteren Satz von Ankern, die garantiert nur am Anfang / Ende der gesamten Zeichenfolge übereinstimmen:
\A
stimmt am Anfang der Zeichenfolge überein.
\Z
Übereinstimmungen am Ende der Zeichenfolge oder vor einem letzten Zeilenumbruch.
\z
stimmt ganz am Ende der Zeichenfolge überein.
Aber nicht alle Sprachen unterstützen diese Anker, insbesondere JavaScript.
string.Contains
funktioniert?