1,正则表达式的特殊字符表达什么意思?
x 字符 x
\ 反斜线字符
字符类
[abc] a、b 或 c(简单类) 三选一
[^abc] 任何字符,除了 a、b 或 c(否定) ^ 表示非的意思
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围) 52
预定义字符类
. 任何字符
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
边界匹配器
^ 行的开头
$ 行的结尾
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
2,java中应用正则表示式的类和步骤是什么?
三步走:
1:创建正则表达式类的实例(Pattern类的对象),需要提供 正则表达式的字符串表示形式
2:根据正则表示式的实例, 创建匹配器(Matcher),需要提供查找的 源字符创
3:执行 匹配器的查找方法 matches()方法来返回匹配的结果(true or false)
3,String 类的正则表达式实现
<1>判断功能
public boolean matches(String regex)
<2>分割功能
public String[] split(String regex)
<3>替换功能
public String replaceAll(String regex,String replacement)
<4>获取功能(提取功能)
Pattern和Matcher类的使用
实例:
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo {
public static void main(String[] args){
String qq=“916700246425454545454”;
System.out.println(“qq号:”+qq+“是否合法:”+(isValidQQRegex(qq)?“合法”:“不合法”));
System.out.println("=/String类的正则表达式实现====");
//String类的正则表达式实现
String str=“916700246”;
String regex="1\d{4,14}$";
System.out.println(str.matches(regex));
String sr1="jerry,susan,peter";
//需求:将jerry,susan等名字单独摘出来
String[] array=sr1.split("[,]]");
System.out.println(Arrays.toString(array));
String str2="java hello vb go javascript and html javascript";
System.out.println(str2.replace("javascript","java"));
System.out.println(str2);
//正则表达式的提取功能Matcher#find();
String str3="my qq number is 91700246, and other qq num is" +
"123456789 and my email address ....";
//需求将qq number提取出来
//三步走
String regex1="[1-9]\\d{4,14}";
Pattern pattern=Pattern.compile(regex1);
Matcher matcher=pattern.matcher(str3);
// matcher.matches();//将整个字符串与regex对比是否匹配
// matcher.find();//将整个字符串中满足 regex的子字符串提取出来
while (matcher.find()){//表示找到了匹配的子字符串
String group=matcher.group();
System.out.println(“qq:”+group);
}
}
//正则表达式的形式判断
private static boolean isValidQQRegex(String qq){
String regex="^[1-9]\\d{4,14}$";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(qq);
boolean b=m.matches();
return b;
}
}
1-9 ↩︎