版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
©2003iFLYTEKTECHCENTER正则表达式简介平台及嵌入式事业部王道广dgwang@2023年1月13日内容介绍什么是正则表达式何时用正则表达式怎么写正则表达式内容介绍什么是正则表达式何时用正则表达式怎么写正则表达式正则表达式的概念概念用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串RegularExpression的“Regular”一般被译为“正则”、“正规”、“常规”。此处的“Regular”即是“规则”、“规律”的意思,RegularExpression即“描述某种规则的表达式”之意在很多文本编辑器或其他工具里,通常被用来检索或替换那些符合某个模式的文本内容正则表达式的历史历史最初出现于理论计算机科学的自动控制理论和形式化语言理论中Unix工具
编辑器QED,ED;文本工具grep编程语言 Perl Java .Net形式化语言理论形式化语言理论中的正则表达式常量
∅,
{ε},
{a}算子
RS
,
R|S
,
R*正则语言 DFA,NFA,图灵机,正则文法,前缀文法不具备的特征
递归内容介绍什么是正则表达式何时用正则表达式怎么写正则表达式非具体内容查找非具体内容的查找查找中文中出现的英文单词,但不具体到某个单词查找代码中的所有注释查找代码中的所有常量值所有满足C语言语法的变量名位置的查找需要确定位置查找所有句首或句尾的单词查找所有后跟ing的单词查找John,但不要Johnson重复若干次不定次重复查找5位以上的数字查找所有连续重复出现的单词“123456”为三个16进制数,每个前面加上一个0x内容之间的联系字符串不同部分之间相互联系查找所有“so…that”格式的从句查找所有后跟数字的单词,但结果不要数字部分
16进制数字“0xab”的数值部分其他应用场景其他用通配符等无法准确或简单描述的规则匹配括号 (a*(b+c))IP地址
内容介绍什么是正则表达式何时用正则表达式怎么写正则表达式多种风格正则表达式有多种不同风格 Perl,Vim,.Net大部分正则表达式的形式都有如下的结构:选择
|表示两个模式之间进行选择;[]表示可选择的字符集合数量限定
?表示0次或一次匹配;*表示0次、1次或多次匹配; +表示1次或多次匹配匹配 ()可以用来定义操作符的范围和优先度PCREPCRE(PerlCompatibleRegularExpression,Perl兼容正则表达式)
常用元字符常用元字符代码
正则表达式“John\b”不能匹配字符串“Johnson”,
正则表达式“John”可以匹配字符串“Johnson”。
字符转义字符转义
正则表达式匹配“.”、“^”、“$”等元字符的时候,前面需要加“\”进行转义。
正则表达式“^d”不能匹配字符串“abc^de”,
正则表达式“\^d”可以匹配字符串“abc^de”。
重复次数重复次数
正则表达式“^\d{6,}”表示一个六位或以上数字。
字符类字符类
自定义的字符集合 [0-9]表示0到9十个数字的集合; [aeiou]表示元音字母集合; [0-9a-zA-Z_]相当于英文环境下的\w。
正则表达式“^0x[0-9a-fA-F]+$”表示十六进制数字。
分枝条件分枝条件
一个模式表示多种规则;
使用“|”把不同规则隔开。
正则表达式“010-\d{8}|021-\d{8}”表示北京或上海地区的8位电话号码。
分组分组(子表达式)
通过“()”指定分组;
可以对分组进行重复次数限定等操作。
正则表达式“010-\d{8}|021-\d{8}”也可写为“(010|022)-\d{8}”;
正则表达式“
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)”表示IP地址。反义反义
不属于某个能简单定义的字符类的字符的集合。
“^\S+$”表示不含空白的非空字符串。
后向引用后向引用
用于重复搜索前面某个分组匹配的文本;
从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2;
\1代表分组1匹配的文本。
“\b(\w+)\b\s+\1\b”可以用来匹配重复的单词,例如“gogo”,“hellohello”。零宽断言零宽断言
(?=exp)叫零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp;
(?<=exp)叫零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式exp。
“\d+(?=L)”可以匹配“65535L”中的数值部分;
“(?<=0x)[0-9a-f]+”匹配16进制数字中的数值部分。负向零宽断言负向零宽断言
(?!exp)叫零宽度负预测先行断言,它断言自身出现的位置的后面不能匹配表达式exp;
(?<!exp)叫零宽度负回顾后发断言,它断言自身出现的位置的前面不能匹配表达式exp。
“\w+(?!\.)”可以匹配不是位于末尾的单词;
“(?<!^)\w+”匹配不位于字符串开头的单词。贪婪与懒惰贪婪与懒惰
当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符;
在表示重复的元字符后面加上“?”,即可匹配尽可能少的字符。
“/\*.*?\*/”可以匹配C语言中的注释部分。选项选项i
忽略大小写m
多行模式s
单行模式x
忽略模式中的空白常用正则表达式常用正则表达式电子邮件 ^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$URL ^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w\.-]*)*\/?$HTML标签 ^<(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 25085.10-2026道路车辆汽车电缆第10部分:交流600 V或直流900 V和交流1000 V或直流1500 V圆形、护套、屏蔽或非屏蔽、多芯或单芯铝导体电缆的尺寸和要求
- 2026广西第一荣军优抚医院面向社会招聘护理员6人笔试参考题库及答案解析
- 2026年哈尔滨市平房区平房镇卫生院公开招聘全科医生、会计人员2人笔试备考试题及答案解析
- 2026浙江台州市温岭市人力资源和社会保障局招聘编外人员2人笔试备考试题及答案解析
- 2026浙江杭州市紫荆花学校年教师招聘考试备考题库及答案解析
- 2026年黄石大冶市事业单位统一公开招聘工作人员118人笔试备考题库及答案解析
- 2026中国农业科学院农业经济与发展研究所粮食安全与发展政策研究创新团队编制外科研助理招聘1人考试备考题库及答案解析
- 2026福建莆田城厢区霞林街道社区卫生服务中心招聘5人笔试参考题库及答案解析
- 2026武汉重型机床集团有限公司春季校园招聘笔试参考题库及答案解析
- 淄博市重点中学2025-2026学年初三物理试题下学期第三次模拟考试试题含解析
- 2026山东出版集团有限公司山东出版传媒股份有限公司招聘193人备考题库及答案详解(基础+提升)
- 职业危害事故处置及报告全流程培训
- 2026年无锡工艺职业技术学院单招职业技能考试题库有答案详解
- 物业服务标准与质量管理手册(标准版)
- 中小医院医用布草洗涤服务方案投标文件(技术方案)
- 2025年监理工程师《案例分析(交通运输工程)》真题及答案
- 2026年全国高考体育单招考试模拟语文试题试题(含答案)
- 2026年人力资源招聘成本降低方案
- 江西省国有资本运营控股集团有限公司2026年第一批批次公开招聘参考考试题库及答案解析
- 部队食堂管理与培训课件
- 北京化工大学 管理学 电子教案 第1章 管理与管理学
评论
0/150
提交评论