Как заставить Regexs соответствовать только точным совпадениям?

Хорошо, так что в основном у меня есть некоторый бит кода, который соответствует URL-адресам с помощью регулярных выражений. Затем он вызывает некоторую функцию, на основе которой regex сопоставляет URL. Я никогда не хочу, чтобы более одной функции вызывалось для URL-адреса, и я хочу, чтобы совпадения регулярных выражений должны быть "точными"

Например, с простым URL / я использую простое регулярное выражение /, которое будет соответствовать /, но оно также будет соответствовать вещам типа /foo и /foo/bar.

Как я могу предотвратить это поведение частичного соответствия в С#/. Net?

Ответ 1

Используйте ^ для соответствия началу строки и $ для конца строки.

Например: ^/$ соответствует /, но не /foo. И ^/ соответствует /foo, но не foo/.

Ответ 2

Добавить пространство в начале и конце ключевого слова, с которым вы хотите сопоставить. Например, у вас есть строка "Hey! foobar I am foo bar." Теперь можно сказать, что вы хотите соответствовать foo. Вы можете сделать это /\s+foo\s+/i, это вернет совпадение только для foo и not foobar.