首页 > 正则表达式中,得到的结果长度大于预期的结果长度.即:非贪婪匹配

正则表达式中,得到的结果长度大于预期的结果长度.即:非贪婪匹配

原标题:问一个正则表达式相关的问题. "pageUrl":"([\S]+)","name 用上面的匹配如下: 得到的是"pageUrl":"test1","name":"test1","pageUrl":"test2

但我想得到的是test1怎么能让它碰到第一个","name就停止呢?

----------------------------------分割线---------------------------------- 上面的是问题的原样,得到答案后,梳理一下文字,以尽可能的更容易被不知道的搜索到.

贪婪匹配:在满足匹配条件时,匹配尽可能长的字符串,在匹配中,默认为贪婪匹配.

string pattern1 = @"a.*c";   // greedy match 
Regex regex = new Regex(pattern1);
regex.Match("abcabc"); // return "abcabc"

非贪婪匹配:在满足匹配条件时,匹配尽可能短的字符串,使用?来表示非贪婪匹配

string pattern1 = @"a.*?c";   // non-greedy match 
Regex regex = new Regex(pattern1);
regex.Match("abcabc"); // return "abc"

以上内容来自:@zdd的博客,文章地址: 正则表达式-问号的四种用法


非贪婪匹配,+ 后面跟一个 ? 即可

"pageUrl":"([\S]+?)","name
【热门文章】
【热门文章】