- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
正则表达式(regex)
一、 作用
1、 正则表通常被用来检索、替换那些符合某个模式(规则)的文本
2、 正则表达式通常被java用来做校验(后台校验)
3、 正则表达式通常被js用来做校验(前端校验)
二、 正则表达式的语法规则在工具软件中进行匹配测试
1、普通字符和转义字符
字母、数字、汉字、下划线、以及没有特殊定义的标点符号,都是“普通字符”
例如:普通字符: a ,1 代表匹配一个 a ,一个 1
转义字符:\n 代表换行符 ,\t 制表符 ,\\ 代表\本身
\^ ,\$,\.,\(, \) , \{, \} , \? , \+ , \* , \| ,\[, \] 匹配这些字符本身
2、标准字符集合:能够与 ‘多种字符’ 匹配的表达式 注意区分大小写,大写是相反的意思
例如:
. 匹配任何字符(与行结束符可能匹配也可能不匹配)
\d 匹配任意一个数字,0~9 中的任意一个 等同与 [0-9]
\D 匹配非数字,等同与[^0-9]
\s 匹配空白字符:等同与[ \t\n\]
\S 匹配非空白字符:等同与[^\s]
\w 匹配单词字符:等同与[a-zA-Z_0-9]
\W 匹配非单词字符:等同与[^\w]
3、自定义字符集合[ ]方括号匹配方式,能够匹配方括号[]中任意一个字符
例如:[ab5@] 匹配 a 或 b 或 5 或 @
[^?abc] 匹配 a,b,c 之外的任意一个字符
[f-k] 匹配 f~k 之间的任意一个字母
[^A-F0-3] 匹配 A~F,0~3 之外的任意一个字符
中括号里面的内容只能从小到大取值 [1-9] ,不能从大到小[9-1]
4、修饰匹配次数的特殊符号
例如:{n} 表达式重复n次
{m,n} 表达式至少重复m次,最多重复n次
{m,}? 表达式至少重复m次
? 匹配表达式0次或者1次,相当于 {0,1}
+ 表达式至少出现1次,相当于 {1,}
* 表达式不出现或出现任意次,相当于 {0,}
匹配次数中的贪婪模式(匹配字符越多越好,默认!)
匹配次数中的非贪婪模式(匹配字符越少越好,修饰匹配次数的特殊符号后再加上一个 ? 号)
5、正则表达式的匹配模式
例如:IGNORECASE 忽略大小写模式 :匹配时忽略大小写
SINGLELINE 单行模式:整个文本看作一个字符串,只有一个开头,一个结尾
MULTILINE 多行模式:每行都是一个字符串,都有开头和结尾
6、字符边界
^与字符串开始的地方匹配
$ 与字符串结束的地方匹配
\b 匹配一个单词边界?
7、选择符和分组
| 左右两边表达式之间 或 关系,匹配左边或者右边
() 在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰,取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到, 每一对括号会分配一个编号,使用 () 的捕获根据左括号的顺序从 1 开始自动编号。捕获元素编号为零的第一个捕获是由整个正则表达式模式匹配的文本?
反向引用(\n)
作业练习 :匹配手机号码
匹配QQ邮箱
匹配网址
三、 JAVA程序中使用正则表达式
1:用法
例如:public static void helloRegex(){
//1:声明一个正则表达式
String regex = \\w{2}\\d{2};
//2:创建正则表达式对象
Pattern pattern = Ppile(regex);
//3:生成正则表达式的匹配器(匹配字符串)
Matcher matcher = pattern.matcher(aa11bb22cc33$$);
//4:匹配
//4.1全局匹配 matches() 返回boolean类型的值
System.out.println(TestTegex.helloRegex():+matcher.matches());
//4.2部分匹配
//System.out.println(TestTegex.helloRegex():+matcher.lookingAt());
//重置匹配器
matcher.reset();
//5:取出所有匹配的字符串
while(matcher.find()){
System.out.println(TestTegex.hel
文档评论(0)