Java中的正则表达式

2023-05-04 20:48:48 浏览数 (3)

java中使用正则表达式的常用方式有两种:一是使用String类的matches方法;二是使用java.util.regex包下的类Pattern、Matcher。

使用方式如下:

代码语言:javascript复制
package com.byron4j.hightLevel.regexp;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 正则表达式demo
 * @author Byron.Y.Y
 *<pre>
 *  java.util.regex 包
 *      Pattern 类: 正则表达式的编译表示形式,静态方法compile可以获取一个模式实例
 *      Matcher 类:正则表达式匹配器,模式实例的matcher获取匹配器,匹配器的matches方法验证是否匹配正则表达式
 *</pre>
 *
 */
public class RegexpDemo {
    public static void main(String[] args) {


        System.out.println( "方式一: 是否为首位非0的11位数字:"   matchStr1("18612345678"));

        System.out.println( "方式二: 是否为首位非0的11位数字:"   matchStr2("18612345678"));


    }



    /**
     * 使用String#matches(regex)
     * @param str
     * @return
     */
    static boolean matchStr1(String str){
        return str.matches("^[1-9]{10}\d{1}$");
    }


    /**
     * 校验  "首位非0的11位数字" 的匹配器
     * @param str
     * @return
     */
    static boolean matchStr2(String str){
        // 编译一个 "首位非0的11位数字" 的正则表达式的模式
        Pattern p = Pattern.compile("^[1-9]{10}\d{1}$");

        // 通过模式得到匹配器
        Matcher m = p.matcher(str);

        // 校验匹配器
        return m.matches();
    }
}

1 人点赞