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

原标题:问一个正则表达式相关的问题. "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的博客,文章地址: 正则表达式-问号的四种用法

慕村9548890
浏览 479回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript