淘先锋技术网

首页 1 2 3 4 5 6 7

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. 1-9 ↩︎