正则表达式中的贪婪匹配(C#)
2011-01-25 12:56
369 查看
正则表达式的引擎是贪婪,只要模式允许,它将匹配尽可能多的字符。
如何匹配满足条件的最短字符?通过在“重复描述字符”(如*,如+)后面添加“?”,可以将匹配模式改成非贪婪。
示例:
在以下的字符串中,我希望能够匹配html的标记符号<span class="ssens">和紧随其后的第一个</span>中的内容。
结果:
如果使用 regexString,匹配结果是“<span> <span class="ssens">an islander</span> is always living in an
island </span>”。
如果使用 regexStringNonGreedy,匹配结果是“<span> <span class="ssens">an islander</span>”。
如何匹配满足条件的最短字符?通过在“重复描述字符”(如*,如+)后面添加“?”,可以将匹配模式改成非贪婪。
示例:
在以下的字符串中,我希望能够匹配html的标记符号<span class="ssens">和紧随其后的第一个</span>中的内容。
string textString="<span> <span class="ssens">an islander</span> is always living in an island </span>" Regex regexString = new Regex("<span class=/"ssens/">.+</span>", RegexOptions.Multiline); Regex regexStringNonGreedy = new Regex("<span class=/"ssens/">.+?</span>", RegexOptions.Multiline);
结果:
如果使用 regexString,匹配结果是“<span> <span class="ssens">an islander</span> is always living in an
island </span>”。
如果使用 regexStringNonGreedy,匹配结果是“<span> <span class="ssens">an islander</span>”。
相关文章推荐
- (学习)python非贪婪、多行匹配正则表达式例子 分类: 正则表达式 2013-08-19 11:21 2540人阅读 评论(2) 收藏
- python非贪婪、多行匹配正则表达式
- 正则表达式(一) 匹配原理/贪婪与非贪婪
- 正则表达式 —— 一种模式描述语言(贪婪匹配与惰性匹配)
- 正则表达式的【贪婪匹配】和【懒惰匹配】
- 正则表达式-贪婪与非贪婪匹配
- 正则表达式的贪婪匹配和非贪婪匹配
- 正则表达式关键词非贪婪(即直到第一个匹配)
- 正则表达式规则以及贪婪匹配与非贪婪匹配
- 正则表达式--递归匹配、非贪婪匹配与分组替换
- 015天(.net学习之路-C#基础知识)-正则表达式(UBB翻译、敏感词处理)
- 正则表达式教程之匹配一组字符详解
- .net c# 正则表达式 平衡组/递归匹配
- 正则表达式中最短匹配模式的用法浅析
- 正则表达式中字符串模式匹配方法exec和match的区别
- 正则表达式断言匹配数组里的所有数值
- C# 文本输入框自动匹配 自动完成
- 正则表达式匹配以指定字符串开头并且以指定字符串结尾
- C# 正则表达式
- 正则表达式的贪婪匹配和非贪婪匹配