11 java se(11)---字符串 正则表达式

一 什么是正则表达式?有什么用?

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

11 java se(11)---字符串 正则表达式_第1张图片11 java se(11)---字符串 正则表达式_第2张图片11 java se(11)---字符串 正则表达式_第3张图片


五  正则表达式:在于写出匹配字符串的正则表达式

正则表达式

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}$";






你可能感兴趣的:(其他)