正则表达式
什么正则表达式
专门用于操作字符串
1,本质上是个字符串
2,它表示一种规则
正则表达式的语法规则:
字符
匹配
x
x
\\
\
\t
制表符
\n
换行
\r
回车
在windows系统中
\r\n 回车换行
[abc]
a或者b或者c
[^abc]
除了a,b,c
[a-z]
所有的小写字母
[^a-z]
除了小写字母
[A-Z]
所有的大写字母
[^A-Z]
除了的大写字母
[a-zA-Z]
所有的字母
[^a-zA-Z]
除了字母
[0-9]
所有的数字
[^0-9]
除了数字
.
任意字符
\\d
表示数字[0-9]
\\D
除了数字
\\w
字母数字或者下划线[a-zA-Z_0-9]
\\W
除了字母数字或者下划线[^a-zA-Z_0-9]
\\s
空白字符
\\S
除了空白字符
上面的所有匹配,都只能匹配一个字符,要匹配多个字符,需要用到一些数量词
x?
x匹配一次或者一次也没有
x+
x匹配一次或者多次
x*
x匹配0次或者多次
x{n}
x匹配敲好n次
x{n,}
x匹配至少n次
x{n,m}
x匹配至少n次,不超过m次
正则表达式
1)匹配功能
matches
练习:匹配QQ号码
2)替换功能
replaceAll
3)分割功能
split
4)获取功能
Pattern类
1,static Pattern compile(String regex)
将给定的正则表达式编译到模式中
2,Matcher matcher(CharSequence input)
用已有的模式匹配指定字符串,返回一个匹配器
Matcher类
3,boolean find()
用匹配器查找匹配的下一个字符串,如果找到了就返回一个true
4,String group()
返回找到的子串
5)练习:
1,判断功能
校验邮箱
2,分割功能:
请写代码实现最终输出结果是:”张三:78,李四:88,王五:98”;
3,替换功能:
论坛中不能出现数字字符,用*替换
4,获取功能:
获取由三个字符组成的单词
da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu?