一 什么是正则表达式?有什么用?
1 正则表达式是用正则表达式的语法写出来的字符串
2 作用是:处理字符串。字符串匹配 字符串查找 字符串替换(注意:正则表达式都是字符处理,并不是字符串处理,把所有字符处理完就是处理了字符串)
二 3个相关的类: String Pattern Matcher
三 如何写正则表达式
1 . 表示任何字符
2 量词 * ? + a{4} a{4,} a{4,100} (注意是花括号)
3 [abc] = a|b|c [^abc]表示除了a b c [a-f[k-z]]表示a-f和k-z的交集 [a-f&&[d-f]]表示交集
4 一些转义字符
5 边界匹配器: \b 单词边界(空格 换行 回车)
四 处理字符串:匹配 查找 替换
[先匹配正则表达式和字符串创建Matcher对象, 然后调用Matcher的方法进行查找和替换]
(一) 匹配
1 Pattern p = p.complile("regex"); 编译正则表达式
2 Matcher m = p.matcher("String") 创建Macther对象
(二)查找
1 下面三个方法都是返回boolean 类型
Matcher.matches(); 匹配整个字符串(String Pattern Macther都有这个方法)
Matcher.find(); 会找到匹配的每一个子字符串
Matcher.lookingAt(); 也是找到每一匹配的子字符串
2 输出
Macther.group();(注意:当正则表达式用小括号分开时就分了组,Matcher.group(1)) 输出的是匹配的字符串
(pattern.compile后面一个变量(为pattern的常量)是指定的规则,作用是忽略大小写)
3 替换
Macther.replaceAll(“JAVA”); 返回的是替换后的原字符串(整个字符串)
Matcher.AppendReplacement(StringBuffer,”java”);(后面的这个java是我们用来替换匹配后找到的String)
五 正则表达式:在于写出匹配字符串的正则表达式
正则表达式
1 必须包含 数字和字母: 等于不全是数字和字母(?![0-9]+$)(?![a-zA-Z]+$)
数字或字母 [0-9a-zA-Z]
2 必须不包含 数字和字母 数字或字母 [^0-9a-zA-Z]
3 数量:(所有数量都可以由此来实现){n}n个 {n,}至少n个 {n,m} n-m个
匹配密码的正则表达式的写法:必须包含数字+大写字母+小写字母
^表示行的开头 $表示行的结尾 (?![0-9]+$)表示整行不全是数字 里面的+表示1个或多个 $还是表示结尾
String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)(?![0-9a-z]+$)(?![0-9A-Z]+$)(?![a-zA-Z]+$)[0-9a-zA-Z]{6,20}$";