zoukankan      html  css  js  c++  java
  • Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配《转》

    //贪婪匹配
    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 个或多个
  • 相关阅读:
    揭秘富人的22种习惯与风格
    CSS
    浏览器--编辑器
    3 位运算 , 补码 ----在开发中比较少用
    2 Java数据类型+转义字符
    1 概述
    如何使用大脑
    JDBC
    web.xml文件的作用
    WindowBuilder插件探索
  • 原文地址:https://www.cnblogs.com/LceMeaning/p/4082976.html
Copyright © 2011-2022 走看看