Java正则表达式全局匹配

今天想用Java的正则在字符串中匹配特定内容,但是当我代码写好运行后却发现正则表达式并没有起作用

试了很多方法,也去Js里试了正则表达式可以走通,就是Java不行

很纳闷 (;′⌒`)

 

Java里正则貌似不能像Js那样用【/g】全局匹配

经过一番折腾,最后还是鼓捣出来了

Java 版

    /**
     * 全局匹配正则表达式
     * Author 散人
     * @param str 字符串
     * @param regex 正则表达式
     * @return
     */
    public static boolean regex(String str, String regex) {
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(str);
        while (m.find()) {
            return true;
        }
        return false;
    }

Js 版

    var regex = /[^0-9]/; // 匹配不在0-9范围内的字符,全局在最后加 g
    var str = '123';
    console.log(regex.test(str)); // false

 有更好的方法欢迎斧正

posted @ 2022-03-10 15:13  散人长情  阅读(2214)  评论(0编辑  收藏  举报