Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配
2007-12-21 13:55
417 查看
//贪婪匹配 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := '<html><head><title>标题</title></head><body>内容</body></html>'; reg.RegEx := '<.*>'; //将会全部匹配, 因为两头分别是: < 和 > reg.Replacement := '◆'; reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆ FreeAndNil(reg); end; //非贪婪匹配 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := '<html><head><title>标题</title></head><body>内容</body></html>'; reg.RegEx := '<.*?>'; // *? 是非贪婪匹配方法之一, 将匹配每组 <> reg.Replacement := '◆'; reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆◆◆标题◆◆◆内容◆◆ FreeAndNil(reg); end; //更多贪婪与非贪婪匹配对照:
贪婪匹配 | 非贪婪匹配 | 描述 |
? | ?? | 0 个或 1 个 |
+ | +? | 1 个或多个 |
* | *? | 0 个或多个 |
{n} | {n}? | n 个 |
{n,m} | {n,m}? | n - m 个 |
{n,} | {n,}? | n 个或多个 |
相关文章推荐
- Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配
- Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配
- Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配
- Delphi 正则表达式语法(3): 匹配范围
- Delphi 正则表达式语法(7): 匹配转义字符
- Delphi 正则表达式语法(7): 匹配转义字符
- Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索"
- Delphi 正则表达式语法(7): 匹配转义字符
- Delphi 正则表达式语法(7): 匹配转义字符
- Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索"
- Delphi 正则表达式语法(3): 匹配范围
- Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索"
- Delphi 正则表达式语法(3): 匹配范围
- Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索"
- Delphi 正则表达式语法(3): 匹配范围
- Delphi 正则表达式语法(3): 匹配范围
- python非贪婪、多行匹配正则表达式例子
- 正则表达式语法 (字符匹配语法,重复匹配语法,字符定位语法,转义匹配语法)
- 正则表达式中的贪婪与非贪婪匹配模式
- 基于正则表达式匹配的CSS语法高亮及代码格式化