Подтвердить что ты не робот

Как совместить с Regex "кратчайшее совпадение" в .NET

Я столкнулся с проблемой с Regex... Мне пришлось сопоставить URL-адрес sharepoint. Мне нужно сопоставить "самый короткий"

Что-то вроде:

http://aaaaaa/sites/aaaa/aaaaaa/

m = Regex.Match(URL, ".+/sites/.+/");

m.Value равно целой строке...

Как я могу сделать его совпадающим с

http://aaaaaaa/sites/aaaa/

и ничего больше?

Большое спасибо!

4b9b3361

Ответ 1

.+ является жадным, поэтому он будет соответствовать как можно большему количеству символов перед остановкой. Измените его на .+?, и совпадение закончится как можно скорее:

m = Regex.Match(URL, ".+/sites/.+?/");

Ответ 2

Попробуйте сделать регулярное выражение для соответствия всем, кроме /, а не просто всем. Это делается с использованием не формы класса символов atom [^].

m = Regex.Match(URL, ".+/sites/[^/]+/");