Delphi 正则表达式语法(2): 或者与重复
// | 号的使用, | 是或者的意思
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := 'CodeGear Delphi 2007';
reg.RegEx := 'e|Delphi|0'; //使用了 | 记号
reg.Replacement := '◆';
reg.ReplaceAll; ShowMessage(reg.Subject); //返回: Cod◆G◆ar ◆ 2◆◆7 FreeAndNil(reg);
end;
// + 的使用, + 是重复 1 个或多个
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';
reg.RegEx := 'ab+'; //使用了 + 记号, 这里是允许 a 后面有 1 个或多个 b
reg.Replacement := '◆';
reg.ReplaceAll; ShowMessage(reg.Subject); //返回: a aa aaa aaaa ◆ ◆ ◆a a呀a FreeAndNil(reg);
end;
// * 的使用, * 是重复 0 个或多个
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';
reg.RegEx := 'ab*'; //使用了 * 记号, 这里是允许 a 后面有多个或者没有 b
reg.Replacement := '◆';
reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆ ◆◆ ◆◆◆ ◆◆◆◆ ◆ ◆ ◆◆ ◆呀◆ FreeAndNil(reg);
end;
// ? 的使用, ? 是重复 0 个或 1 个
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';
reg.RegEx := 'a?'; //使用了 ? 记号
reg.Replacement := '◆';
reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆ ◆◆ ◆◆◆ ◆◆◆◆ ◆b ◆bb ◆bbb◆ ◆呀◆ FreeAndNil(reg);
end;
//大括号的使用<1>, 指定重复数
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';
reg.RegEx := 'a{3}'; //这里指定重复 3 次
reg.Replacement := '◆';
reg.ReplaceAll; ShowMessage(reg.Subject); //返回: a aa ◆ ◆a ab abb abbba a呀a FreeAndNil(reg);
end;
//大括号的使用<2>
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';
reg.RegEx := 'a{2,4}'; //这里指定重复 2-4 次
reg.Replacement := '◆';
reg.ReplaceAll; ShowMessage(reg.Subject); //返回: a ◆ ◆ ◆ ab abb abbba a呀a FreeAndNil(reg);
end;
//大括号的使用<3>
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';
reg.RegEx := 'a{1,}'; //n 个或多个, 这里是 1 个或多个
reg.Replacement := '◆';
reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆ ◆ ◆ ◆ ◆b ◆bb ◆bbb◆ ◆呀◆ FreeAndNil(reg);
end; //上面这个 {1,} 和 + 是等效的;
//还有 {0,1} 与 ? 是等效的;
//{0,} 和 * 是等效的
Delphi 正则表达式语法(2): 或者与重复的更多相关文章
- Delphi 正则表达式语法(10): 选项
Delphi 正则表达式语法(10): 选项 // preCaseLess: 不区分大小写, 相当于其他语言中的 i var reg: TPerlRegEx; begin reg := TPe ...
- Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索"
Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索" //匹配右边 var reg: TPerlRegEx; begin ...
- Delphi 正则表达式语法(8): 引用子表达式 - 也叫反向引用
Delphi 正则表达式语法(8): 引用子表达式 - 也叫反向引用 //准备: 我们先写一个搜索所有英文单词的表达式 var reg: TPerlRegEx; begin reg := TP ...
- Delphi 正则表达式语法(7): 匹配转义字符
Delphi 正则表达式语法(7): 匹配转义字符 // ? 号的意义是匹配 0-1 次, 如果需要匹配 ? 怎么办 var reg: TPerlRegEx; begin reg := TPe ...
- Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配
Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配 //贪婪匹配 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); ...
- Delphi 正则表达式语法(5): 边界
Delphi 正则表达式语法(5): 边界 // \b 单词边界 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg ...
- Delphi 正则表达式语法(4): 常用转义字符与 .
Delphi 正则表达式语法(4): 常用转义字符与 . // \d 匹配所有数字, 相当于 [0-9] var reg: TPerlRegEx; begin reg := TPerlRegE ...
- Delphi 正则表达式语法(3): 匹配范围
Delphi 正则表达式语法(3): 匹配范围 // [A-Z]: 匹配所有大写字母 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(n ...
- Delphi 正则表达式语法(1): 关于大小写与中文
Delphi 正则表达式语法(1): 关于大小写与中文 //替换一般字符串 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); ...
随机推荐
- 下一个时代,对话即平台 —— 开始使用Bot Framework和Cognitive Service来打造你的智能对话服务
在16年3月30号微软的全球开发者大会Build上发布了Bot Framework,微软认为下一个big thing是Conversation as a Platform,简称CaaP,中文应该叫做& ...
- 破解idea注册码
添加 “0.0.0.0 account.jetbrains.com”到host, hosts位置:C:\Windows\System32\drivers\etc 获取注册码网址: http://ide ...
- 请写出一段表单提交的HTML代码,表单名称为form1,提交方式为post,提交地址为submit.asp
请写出一段表单提交的HTML代码,表单名称为form1,提交方式为post,提交地址为submit.asp 解答: <form name=”form1” method=”post” action ...
- BootStrap带样式打印
在新窗口打印时bootstrap表格的样式出不来,因为打印时没有加载CSS样式. 我在jquery.PrintArea.js的基础上改造了下打印的方法: (function ($) { var pri ...
- 【python】获取网页中中文内容并分词
# -*- coding: utf-8 -*- import urllib2 import re import time import jieba url="http://www.baidu ...
- JS encodeURI和encodeURIComponent
一.最常用的encodeURI和encodeURIComponent 对URL编码是常见的事,所以这两个方法应该是实际中要特别注意的.它们都是编码URL,唯一区别就是编码的字符范围,其中encodeU ...
- shell基础(二)
echo命令 Shell 的 echo 指令是用于字符串的输出. #!/bin/sh read name #读取标准输入的行 echo "$name It is a test" e ...
- sqlmap注入教程
1.SQLMAP用于Access数据库注入 (1)猜解是否能注入win: python sqlmap.py -u "http://www.stronkin.com/en/CompHonorB ...
- IOS控件:WebView移动网站导航
#import <UIKit/UIKit.h> // 模板默认引入包含程序需要使用“类”的框架,即 Foundation.h头文件,使它包含在程序中 #import <Foundat ...
- 【BZOJ4584】[Apio2016]赛艇 DP
[BZOJ4584][Apio2016]赛艇 Description 在首尔城中,汉江横贯东西.在汉江的北岸,从西向东星星点点地分布着个划艇学校,编号依次为到.每个学校都拥有若干艘划艇.同一所学校的所 ...