Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索"
//匹配右边
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := 'Delphi 6; Delphi 7; Delphi 2007; Delphi Net';
reg.RegEx := 'Delphi (?=2007)'; // ?=
reg.Replacement := '◆';
reg.ReplaceAll; ShowMessage(reg.Subject); //返回: Delphi 6; Delphi 7; ◆2007; Delphi Net FreeAndNil(reg);
end;
//不匹配右边
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := 'Delphi 6; Delphi 7; Delphi 2007; Delphi Net';
reg.RegEx := 'Delphi (?!2007)'; // ?!
reg.Replacement := '◆';
reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆6; ◆7; Delphi 2007; ◆Net FreeAndNil(reg);
end;
//匹配左边
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := '111, 222, ¥333, ¥444';
reg.RegEx := '(?<=¥)\d{3}'; // ?<=
reg.Replacement := '◆';
reg.ReplaceAll; ShowMessage(reg.Subject); //返回: 111, 222, ¥◆, ¥◆ FreeAndNil(reg);
end;
//不匹配左边
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := '111, 222, ¥333, ¥444';
reg.RegEx := '(?<!¥)\d{3}'; // ?<!
reg.Replacement := '◆';
reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆, ◆, ¥333, ¥444
FreeAndNil(reg);
end;
Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索"的更多相关文章
- Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配
Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配 //贪婪匹配 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); ...
- Delphi 正则表达式语法(8): 引用子表达式 - 也叫反向引用
Delphi 正则表达式语法(8): 引用子表达式 - 也叫反向引用 //准备: 我们先写一个搜索所有英文单词的表达式 var reg: TPerlRegEx; begin reg := TP ...
- Delphi 正则表达式语法(7): 匹配转义字符
Delphi 正则表达式语法(7): 匹配转义字符 // ? 号的意义是匹配 0-1 次, 如果需要匹配 ? 怎么办 var reg: TPerlRegEx; begin reg := TPe ...
- Delphi 正则表达式语法(3): 匹配范围
Delphi 正则表达式语法(3): 匹配范围 // [A-Z]: 匹配所有大写字母 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(n ...
- Delphi 正则表达式语法(10): 选项
Delphi 正则表达式语法(10): 选项 // preCaseLess: 不区分大小写, 相当于其他语言中的 i var reg: TPerlRegEx; begin reg := TPe ...
- 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 正则表达式语法(2): 或者与重复
Delphi 正则表达式语法(2): 或者与重复 // | 号的使用, | 是或者的意思 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create ...
- Delphi 正则表达式语法(1): 关于大小写与中文
Delphi 正则表达式语法(1): 关于大小写与中文 //替换一般字符串 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); ...
随机推荐
- cocos2dx 富文本框,支持换行,支持神情(支持汉字截断无乱码)
cocos2dx 富文本框,支持换行,支持表情(支持汉字截断无乱码) 小工在做了一个游戏聊天功能,里面用到插入表情的富文本和换行的问题: 先看效果,不是你要的效果,可return:(截图由于:输入的问 ...
- Android ----------------- 面试题 整理 一
1. XML的解析方式都有哪些? 每一种解析方式的运行流程? 设XML为:<a>a<b>bc<c>c1</c></b></a> ...
- IntelliJ IDEA 注册码-使用帮助
拷贝自http://idea.lanyus.com,但是内容有些老旧,有空了我更新一下. 激活 激活码激活 授权服务器激活 破解补丁激活 修改试用时间 激活码 激活码目前为博主分享的自用激活码,到期前 ...
- win10执行shell脚本
我们在win10如何执行以.sh文件的脚本呢? 开发步骤:1.写脚本b2q_goods.sh #!/bin/bashsql="select * from b2q.goods where go ...
- 如何用redis/memcache做Mysql缓存层
方法一:直接用MysqlMysql有缓存,实现了类似的功能,如果需要缓存的东西很多,可以把缓存的内存设置大一点.这样的好处就是不用去控制缓存的失效,确保数据一致性. 方法二:启用用DAO框架的缓存比如 ...
- XmLHttpRequst下载Excel
//得到浏览器版本 myJqHelp.getBrowser = function () { var ua = window.navigator.userAgent; var isIE = !!wind ...
- PHP手机号码归属地查询API接口
淘宝网 API地址: http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443 参数: tel:手机号码 返回:JSON ...
- 5、手把手教React Native实战之盒子模型BoxApp
用HTML5和React Native分别实现盒子模型显示 写法不一样: 1.样式 通过man命令阅读软件或命令的manual page.例如阅读man命令的manual页面可使用如下命令: ...
- SQL语法:查询此表有另外一个表没有的数据
select bei.ExamItem_Code2,*from PeisPatientExamItem ppeijoin PeisPatientFeeItem ppfion ppfi.ID_Patie ...