- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
正则表达式入门
曹利锋
正则表达式是什么
描述了一种字符串匹配的模式,可以用来检查一个串是否含有某个子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
我们用过的最简单的规则:文件查找通配符:“?”和“*”
正则表达式的作用
测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。
替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。
第一个正则表达式
从英文小说中查找 hi
但不能把him,high,history也找到,可以用\bhi\b
\b表示匹配一个单词边界,如果是 \bhi\w*,那就找到了him,high,history
假如你要找的是hi后面不远处跟着一个Lucy,你应该用\bhi\b.*\bLucy\b。
其中,.*连在一起就意味着任意数量的不包含换行的字符。
第二个正则表达式
三位区号八位机号的电话号码
0\d\d-\d\d\d\d\d\d\d\d
其中\d指的是数字
可以简化为:
0\d{2}-\d{8}
{}中表示的是重复的次数。
我们走到哪了?
我们现在有以下正则表达式的元字符
\b
\w
\d
.
*
{}
这些都是什么意思?
更进一步
\d+匹配1个或更多连续的数字。下限是至少一次。
而*的下限是0次
再例:
\b\w{6}\b 匹配刚好6个字母/数字的单词。
常用的元字符
代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
匹配QQ号
QQ号最少是5个数字,目前最长是12位数字
字符转义
要匹配正则表达式中用的字符,如\
这就需要转义,应当写成\\
类似,我们还有:\. \* \+ 等等
常用的限定符
代码/语法 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
字符范围
[xyz]字符集合。匹配所包含的任意一个字符。
[a-z]字符范围。匹配指定范围内的任意字符。
所以 [0-9]代表的含意与\d就是完全一致
同理 [a-z0-9A-Z_] 也完全等同于\w (当然,这种等同只能仅考虑英文)
例子:
1.QQ号改正:QQ后首位不能为0
2.匹配(010或022或02912345678
反义
反义,有定义的元字符大写,即是反义,同样,字符集前加上^也是反义。所以:
代码/语法 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。
并列
用|表示或者,把每一个规则分开,用|合并为一组共用。
例子:
电话号码可以是3位区号8位号码,或4位区号7位号码
022 0477-7192112
分组
字符可以指定重复次数,规则表达式如何指定重复次数?
IP地址(\d{1,3}\.){3}\d{1,3}
(\d{1,3}\.)这部分是1到3位数字加“.”,用括号表示为一个子表达式,并且{3}表示重复3次。
后向引用
使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。
组号保存的结果,实际如同程序中变量或数组保存数据一样。对组号的调用,如果是使用变量。
后向引用示例
后向引用用于重复搜索前面某个分组匹配的文本。例如,\1代表分组1匹配的文本。难以理解?请看示例:
\b(\w+)\b\s+\1\b可以用来匹配重复的单词,像go go, kitty kitty。首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字
您可能关注的文档
最近下载
- 设备生产培训.pptx VIP
- 学生公寓维修改造工程施工组织设计施工方案投标文件(技术方案).doc
- 铁路概论基础知识题库单选题100道及答案.docx VIP
- 交警大队事故处理委托书模板.docx VIP
- (高清版)DB23∕T 3915—2024 汉麻提取加工生产设施管理指南.pdf VIP
- 2024年浙江省镇海中学自主招生数学试卷及答案 .pdf VIP
- 高考化学一轮专项复习讲义-价层电子对互斥模型、杂化轨道理论及应用(含解析).pdf VIP
- 2025年3完整版_中考英语核心高频688词 【背诵版】 .pdf VIP
- 矩阵的乘法运算省名师优质课赛课获奖课件市赛课一等奖课件.pptx VIP
- 医疗机构药事管理与风险防范.pptx VIP
文档评论(0)