正则表达式
1. 概述 :
正则表达式 : 定义了字符串的模式,可以用来搜索,编辑,处理文本,并不仅限于某一种语言,但是在每种语言中也会有细微的差别
2. 语法 :
转义符(\) : 把有意义字符转化为无意义字符
[abc] : 可能是a ,可能是b ,也可能是c
[a-z] : 可以匹配到小写字母
[A-Za-z] : 可以匹配到大小写字母
[A-Za-z0-9] : 大小写字母和数字
[0-9] : 匹配数字
[^0-9] : 匹配的不是数字
. : 匹配任意字符,如果想匹配 . 需要转义 \.
\d : 表示数字 等价于[0-9]
\D : 表示非数字 等价于[^0-9]
\s : 表示由空字符组成
\S : 表示非空
\w : 表示字母,数字,下划线[0-9a-zA-Z_]
\W : 表示非字母数字下划线
? : 表示出现0次或1次
+ : 表示出现1次或多次,大于等于1
* : 大于等于0
{n} : 表示出现n次,[0-9]{6} : 表示出现6位数字
{n,} : 表示出现n次或n次以上,就是大于等于n, \d{6,} : 表示至少出现6个数字
{n,m} :表示出现n到m次, \d{2,5}: 表示出现2到5个数字
| : 或 , x|y :表示出现x或者是y
() : 子表达式,看作一个整体 ([0-9]张){5}
匹配整数和小数 :
^\d+(\.\d+)?$
^ : 表示开始,以xxx打头
$ : 表示结束
一般想要强制全词匹配的时候,才加^和$
\d : 匹配数字
+ : 匹配一个或多个
(\.\d+) : 把\.和\d+看做整体
? : 只能出现0次或1次
3.1Pattern
用于创建一个正则表达式,也可以说创建一个匹配模式,它的构造方法是私有的,不可以直接创建
可以通过Pattern.complie(String regex)创建一个正则表达式
只能做一些简单的匹配操作
3.2 Matcer
构造方法也是私有的,不能随意创建,只能通过Pattern.matcher(CharSequence input)方法得到该类的实例 Matcher m = p.matcher("aaaaab");
支持便捷强大的正则匹配操作,包括分组、多次匹配支持
3.2.1字符串匹配
Matcher.matches():对整个字符串进行匹配,只有整个字符串都匹配了才返回true
Matcher.lookingAt():对前面的字符串进行匹配,只有匹配到的字符串在最前面才返回true
Matcher.find():对字符串进行匹配,匹配到的字符串可以在任何位置
3.2.2数据提取
3.2.3 叠词去重