java常见正则表达式用法

导读:本篇文章讲解 java常见正则表达式用法,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

java常见正则表达式用法

例1:

判断整个字符串是否只有大小写字母和数字

        String str = "ABCaaa123GG";
        String reg = "^[A-Za-z0-9]+$";
        Pattern pattern = Pattern.compile(reg);
        if (str != null) {
            Matcher matchera = pattern.matcher(str);
            if (matchera.matches()) {
                System.out.println("str符合全是字符和数字的规则");
            } else {
                System.out.println("str不符合全是字符和数字的规则");
            }
        }

输出:

str符合全是字符和数字的规则

其他正则规则可参考:Java常用正则表达式大全(史上最全的正则表达式-匹配中英文、字母和数字)

例2:

获取中间的数字

String str = "zxc#%fs1237895218m*jhg";
String reg = "(\\D*)(\\d+)(\\D*)";

Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
     System.out.println(matcher.group(1));
     System.out.println(matcher.group(2));
     System.out.println(matcher.group(3));
}else{
     System.out.println(" 没有匹配到内容....");
}

输出:

zxc#%fs
1237895218
m*jhg

例3:

获取“_”到“.”之间的字符串

String str = "fileNameCode-->_AD2467524284sd234.json";
String reg = "_(.*?)\\.";

Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
     System.out.println(matcher.group(1));
}else{
     System.out.println(" 没有匹配到内容....");
}

输出:

AD2467524284sd234

例4:

身份证号脱敏

String str = "420302199808190937";
String str1 = "(.{4})(.*)(.{3})";//只保留前4位和后三位

String strNew = str.replaceAll(str1,"$1********$3");
System.out.println(strNew);

输出:

4203********937

例5

判断是否包含中文

String str = "123木头人";

Pattern pattern = Pattern.compile("[\u4e00-\u9fa5]");
Matcher matcher = pattern.matcher(str);
boolean bo = false;
if (matcher.find()) {
    bo = true;
    System.out.println(bo + ",包括中文");
} else {
    System.out.println(bo + ",不包括中文");
}

输出:

true,包括中文

例6:

获取字符串中所有:到,之间的内容

String str = "1a:1242,5B:as32654,3j:4547,4d:456xas54,";
String reg = ":(.+?),";
        
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(str);
List<String> list = new ArrayList<>();
while (matcher.find()){
    list.add(matcher.group(1));
}
System.out.println(list);

输出:

[1242, as32654, 4547, 456xas54]

参考文章:
Java正则表达式入门
Java 正则表达式
姓名,身份证号,银行卡号利用正则表达式实现数据脱敏工具类
JAVA正则表达式,matcher.find()和 matcher.matches()的区别

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/80351.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!