文档章节

Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 177
阅读 4
收藏 0
//贪婪匹配
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 个或多个

本文转载自:http://www.cnblogs.com/del/archive/2007/12/21/1009031.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
正则表达式详解 js

前言 作为一个程序员,要出去装逼,手中必备的技能就是正则表达式。程序员的正则表达式,医生的处方和道士的鬼画符,都是利器。 在js中,很多的场景需要去使用到它(毕竟,js刚刚诞生的时候,...

zimo
2017/09/19
0
0
Python正则表达式指南(上)

正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十...

开心303
2011/07/28
0
0
golang 中的 regexp 包

正则 语法 google/re2 Printf 语法 几个函数方法 名称 说明 备注 Match 验证正则表达式是否匹配 []byte - MatchString 验证正则表达式是否匹配 string - FindString FindStringSubmatch 返回...

lemos
2017/07/08
0
0
正则表达式

正则表达式 一、 什么是正则表达式 /^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/ 这就是正则表达式? 看不懂 二、 和正则表达式相似的事物 乱/看不懂/神秘 女人的心 道士的符 医生的处方 正则表...

方花
2017/11/08
0
0
follow大神教程——实践java爬虫之补充

前4篇利用Java本身自带的URLConnection实现一些基本的抓取页面的功能,但是对于一些比较高级的功能,比如重定向的处理,HTML标记的去除,仅仅使用URLConnection还是不够的。 或许HttpClient抓...

realsa
2014/07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js 写文件

//写文件function doSave(value, type, name) {    var blob;    if (typeof window.Blob == "function") {        blob = new Blob([value], {type: type});    }......

重城重楼
12分钟前
1
0
Ubuntu and Apache 搭建 Let's Encrypt SSL Https

本文参考来着来自https://www.howtoing.com/install-free-lets-encrypt-ssl-certificate-for-apache-on-debian-and-ubuntu 感谢作者的分享 本事例环境介绍 ubuntu (Version 16.04.1 LTS) ubu......

罗培海
15分钟前
8
0
如何优雅的使用RabbitMQ

目录 RabbitMQ无疑是目前最流行的消息队列之一,对各种语言环境的支持也很丰富,作为一个.NET developer有必要学习和了解这一工具。消息队列的使用场景大概有3种: 1、系统集成,分布式系统的...

编程SHA
18分钟前
1
0
阿里开发者们的第19个感悟:Simple is better.

1月16日,Simple is better.这是我们送给开发者的第19个感悟。 Mars,基于矩阵的统一计算框架。已经开源。那么:Mars 是什么,能做什么,怎么做的;Mars 如何分布式地执行等。可以与继盛多交...

阿里云官方博客
19分钟前
2
0
StringBuffer 和 StringBuilder 的 3 个区别

StringBuffer 和 StringBuilder 它们都是可变的字符串,不过它们之间的区别是 Java 初中级面试出现几率十分高的一道题。这么简单的一道题,栈长在最近的面试过程中,却经常遇到很多求职者说反...

Java技术栈
23分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部