Delphi 正则表达式语法(7): 匹配转义字符
// ? 号的意义是匹配 0-1 次, 如果需要匹配 ? 怎么办
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := '你好吗? 还行!';
reg.RegEx := '\?|!'; // 加转义用的 \
reg.Replacement := '◆';
reg.ReplaceAll; ShowMessage(reg.Subject); //返回: 你好吗◆ 还行◆ FreeAndNil(reg);
end;
//乱用转义符号 \ 有时是可以的, 但有时会出问题, 最好不要乱用
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := '你好吗? 还行!';
reg.RegEx := '\?|\!|\好'; // 给没必要的 "!" 与 "好" 加了 \ 在本例中也正常了
reg.Replacement := '◆';
reg.ReplaceAll; ShowMessage(reg.Subject); //返回: 你◆吗◆ 还行◆ FreeAndNil(reg);
end;
{ 本来是有一个选项 [preExtra] 禁止乱用的, 但效果不好}
正则表达式中的特殊字符表:
| 特殊字符 | 在正则表达式中的意义 | 匹配字符本身 |
| ^ | 匹配字符串的开始,或不匹配 [] 中的内容 | \^ |
| $ | 匹配字符串的结尾 | \$ |
| ( 和 ) | 标记子表达式 | \( 和 \) |
| [ 和 ] | 匹配"多种字符" 的表达式 | \[ 和 \] |
| { 和 } | 匹配次数的符号 | \{ 和 \} |
| . | 匹配除换行符以外的所有字符 | \. |
| ? | 匹配 0 次或 1 次 | \? |
| + | 匹配至少 1 次 | \+ |
| * | 匹配 0 次或任意次 | \* |
| | | 或 | \| |
| \ | 转义符号本身 | \\ |
Delphi 正则表达式语法(7): 匹配转义字符的更多相关文章
- 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 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索"
Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索" //匹配右边 var reg: TPerlRegEx; begin ...
- Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配
Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配 //贪婪匹配 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); ...
- 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 正则表达式语法(8): 引用子表达式 - 也叫反向引用
Delphi 正则表达式语法(8): 引用子表达式 - 也叫反向引用 //准备: 我们先写一个搜索所有英文单词的表达式 var reg: TPerlRegEx; begin reg := TP ...
- Delphi 正则表达式语法(2): 或者与重复
Delphi 正则表达式语法(2): 或者与重复 // | 号的使用, | 是或者的意思 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create ...
- Delphi 正则表达式语法(1): 关于大小写与中文
Delphi 正则表达式语法(1): 关于大小写与中文 //替换一般字符串 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); ...
随机推荐
- hihoCoder #1320 : 压缩字符串 区间dp
/** 题目:hihoCoder #1320 : 压缩字符串 链接:https://hihocoder.com/problemset/problem/1320 描述 小Hi希望压缩一个只包含大写字母' ...
- [转]JS脚本抢腾讯云学生1元代金券
转自:http://blog.csdn.net/lkxlaz/article/details/54909397 今天抢代金券,在网上看到的,虽然脚本很easy,但也mark一下吧. //make th ...
- AJAX防止多次请求
ajax诠释 ajax 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式. ajax所包含 ...
- 【PM面试题】设计一个股价推送工具
这一轮面试时间比较短,问题在短时间内不能很全面展开,因此抓住一些关键点变得尤其重要,这里我记录下当时是怎么想这个问题的. 问题解析 子问题1:推送什么?从问题中看出我们需要推送的是股价,用户可以自定义 ...
- Python 数据库连接池
python编程中可以使用pymysql进行数据库连接及增删改查操作,但每次连接mysql请求时,都是独立的去请求访问,比较浪费资源,而且访问数量达到一定数量时,对mysql的性能会产生较大的影响.因 ...
- setAttribute()使用方法与IE兼容解决方法
我们经常需要在JavaScript中给Element动态添加各种属性,可以使用setAttribute()来实现,但涉及到了浏览器的兼容性问题.setAttribute(string name,str ...
- SSH框架-Struts2基础-Action
Struts2的目录结构: 解压apps目录下的struts2-blank.war: 仿照这个最基本的项目,拷贝相关文件: 1.拷贝apps/struts2-blank/WEB-INF/classes ...
- 我的第一个reactnative
由于在做极光推送,前端使用的框架是reactnative,后台写好后为了测试一下,所以按照react官方的教程搭了遍react. 开发环境: 1.windows 7(建议各位如果开发react的最好还 ...
- 自定义ScrollView 支持添加头部
自定义ScrollView 支持添加头部并且对头部ImageView支持放大缩小,上滑头部缩小,下滑头部显示放大 使用方式: scrollView = (MyScrollView) findViewB ...
- DefaultActionInvocation类的执行action
DefaultActionInvocation类的执行action 上一章里面有提到过DefaultActionInvocation类的invoke方法里面的invokeActionOnly方法.没有 ...