Java中的正则表达式

正则表达式:

实质上是一个模式,用于描述共享该模式的一组字符串

正则表达式语法:

字符

    x            x字符
    \\            反斜线字符
    \t             制表符
    \n            换行符
    \r            回车符
    
    
字符类:
    [abc]        a、b 或 c(简单类)
    [^abc]         任何字符,除了 a、b 或 c(否定)
    [a-zA-Z]     a 到 z 或 A 到 Z,两头的字母包括在内(范围)
    
预定义字符类:
    . 任何字符                 如果本身就是.        
    \d                 数字:[0-9]                     
    \w                 单词字符:[a-zA-Z_0-9]:字母大小写,数字字符                        

边界匹配器:
    ^                 行的开头
    $                  行的结尾
    \b                 单词边界 尾 (helloword?haha:world)

Greedy 数量词(重点)
    X?                 X,一次或一次也没有
    X*                 X,零次或多次
    X+                 X,一次或多次
    X{n}            X字符恰好出现n次
    X{n,}            X字符至少出现n次
    X{n,m}            X字符至少出现n次,但不超过m次

程序示例:

public static void main(String[] args) {        
        Scanner sc  = new Scanner(System.in) ;        
        System.out.println("请输入一个QQ号码:");
        String QQ =sc.nextLine() ;    
        boolean flag = checkQQ(QQ) ;    //调用正则表达式
        System.out.println(flag);
    }
    
    public static boolean checkQQ(String qq) {
        return qq.matches("[1-9]\\d{4,14}") ;             //字符串方法boolean matches(String regex) 告知此字符串是否匹配给定的正则表达式。
    }





Pattern类

作用在于编译正则表达式后创建一个匹配模式.

String regex = "\\?|\\*";
Pattern pattern = Pattern.compile(regex);
String patternStr = pattern.pattern();//返回\?\*


Matcher类

使用Pattern实例提供的模式信息对正则表达式进行匹配

Pattern pattern = Pattern.compile("\\?{2}");
Matcher matcher = pattern.matcher("??");      // Matcher matcher(String input)  :模式对象转换成匹配器对象

boolean matches = matcher.matches();


Pattern中的两个常用方法

String[] split(CharSequence input)
          围绕此模式的匹配拆分给定输入序列。
String[] split(CharSequence input, int limit) 增加参数limit目的在于要指定分割的段数
          围绕此模式的匹配拆分给定输入序列。


猜你喜欢

转载自blog.csdn.net/scbiaosdo/article/details/80172048