Ответ 1
.+
является жадным, поэтому он будет соответствовать как можно большему количеству символов перед остановкой. Измените его на .+?
, и совпадение закончится как можно скорее:
m = Regex.Match(URL, ".+/sites/.+?/");
Я столкнулся с проблемой с Regex... Мне пришлось сопоставить URL-адрес sharepoint. Мне нужно сопоставить "самый короткий"
Что-то вроде:
http://aaaaaa/sites/aaaa/aaaaaa/
m = Regex.Match(URL, ".+/sites/.+/");
m.Value равно целой строке...
Как я могу сделать его совпадающим с
http://aaaaaaa/sites/aaaa/
и ничего больше?
Большое спасибо!
.+
является жадным, поэтому он будет соответствовать как можно большему количеству символов перед остановкой. Измените его на .+?
, и совпадение закончится как можно скорее:
m = Regex.Match(URL, ".+/sites/.+?/");
Попробуйте сделать регулярное выражение для соответствия всем, кроме /
, а не просто всем. Это делается с использованием не формы класса символов atom [^]
.
m = Regex.Match(URL, ".+/sites/[^/]+/");