如何在.NET中与正则表达式"最短匹配"相匹配

Zib*_*eah 14 .net c# regex

我正面临着Regex的问题......我必须匹配sharepoint URL ..我需要匹配"最短"

就像是:

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

m = Regex.Match(URL, ".+/sites/.+/");
Run Code Online (Sandbox Code Playgroud)

m.Value等于整个字符串......

我怎样才能让它匹配

http://aaaaaaa/sites/aaaa/
Run Code Online (Sandbox Code Playgroud)

没别的?

非常感谢你!

And*_*ark 26

.+贪婪,所以它会在停止之前匹配尽可能多的字符.将其更改为.+?,比赛将尽快结束:

m = Regex.Match(URL, ".+/sites/.+?/");
Run Code Online (Sandbox Code Playgroud)


Jar*_*Par 7

尝试使正则表达式匹配所有内容,/而不仅仅是一切.这是通过使用not form形式的atom来完成的[^].

m = Regex.Match(URL, ".+/sites/[^/]+/");
Run Code Online (Sandbox Code Playgroud)