Как правило, и с настройками по умолчанию, ^и$ якоря - хороший способ убедиться, что регулярное выражение соответствует всей строке.
Однако есть несколько предостережений:
Если у вас есть чередование в вашем регулярном выражении, обязательно заключите ваше регулярное выражение в группу без захвата, прежде чем окружать его ^и $:
^foo|bar$
конечно отличается от
^(?:foo|bar)$
Кроме того, ^и $может иметь другое значение (начало / конец строки вместо начала / конца строки ), если установлены определенные параметры. В текстовых редакторах, поддерживающих регулярные выражения, это обычно поведение по умолчанию. В некоторых языках, особенно Ruby, это поведение даже нельзя отключить.
Следовательно, есть еще один набор якорей, которые гарантированно будут соответствовать только в начале / конце всей строки:
\A совпадает с началом строки.
\Z совпадает в конце строки или перед окончательным разрывом строки.
\z соответствует в самом конце строки.
Но не все языки поддерживают эти привязки, особенно JavaScript.
string.Containsбудет работать простое ?