Как заставить регулярные выражения совпадать только на точных совпадениях? - PullRequest
13 голосов
/ 03 января 2011

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

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

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

Ответы [ 2 ]

27 голосов
/ 03 января 2011

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

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

0 голосов
/ 07 ноября 2011

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

...