栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java正则表达式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java正则表达式

一、概述 

        正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。所以说,正则表达式在处理字符串中时非常有用,是掌握字符串使用的重要知识。

二、Java中正则表达式的常用操作

 

         正则表达式是一种强大而灵活的文本处理工具。Java中常见的正则表达式操作有匹配、切割、替换和获取。

1、匹配

使用String  matches()方法,不符合规则返回值为False。

package zhengze;

public class Dddm {
    private static final String False = null;

	public static void main(String[] args){
        String Str = new String("我是一只程序猿");

        System.out.println("返回值 :"+Str.matches("(.*)一只(.*)"));

        boolean flag = Str.matches("我是(.*)");
        if(flag){
            System.out.println("我被重新定义为:HelloWord!");
        }else{
        	System.out.println("我没有被重新定义!");
        }
    }
}
返回值 :true
我被重新定义为:HelloWord!

以上为实例及其执行结果。

2、切割

使用String split()方法。

package zhengze;

public class Demo5_Split {

    public static void main(String[] args) {
 
        String s = "程序员.程序猿.chengxuyuan";
 
        String[] arr = s.split("\.");              
 
        for (int i = 0; i < arr.length; i++) {
 
            System.out.println(arr[i]);
 
        }
 
    }
}
程序员
程序猿
chengxuyuan

以上为实例及其执行结果。

3、替换

使用String replaceAll(regex,str)方法。

package zhengze;

public class Demo2 {
    public static void main(String[] args)
    {
    
        String str = "abc1234567890de1234567fghi232323232l";//将字符串中的数字替换成%。
 
        str = str.replaceAll("\d{5,}","%");

        System.out.println(str);
    }
}
abc%de%fghi%l

以上为实例及其执行结果。

4、获取

将字符串中的符合规则的子串取出。

public class Test {
    public static void main(String[] args) {
        String str = "select * from order where createdUser = ${currentUser} and  depart = ${currentOrg} and status = 'VALID'";
        String reg = "\$\{[a-zA-Z0-9]+\}";
 
        Pattern patten = Pattern.compile(reg);
        Matcher matcher = patten.matcher(str);
 
        List matchStrs = new ArrayList<>();
 
        while (matcher.find()) { 
           matchStrs.add(matcher.group());
        }
 
        for (int i = 0; i < matchStrs.size(); i++) {
            System.out.println(matchStrs.get(i));
        }
    }
}
 ${currentUser}
 ${currentOrg}

以上为实例及其执行结果

三、常见字符

特殊含义的字符

 

 


 字符类

逻辑操作符

 

边界匹配符 

 

 四、实例

校验qq号,要求5-15位数字,开头不能为0.

package zhengze;

import java.util.Scanner;

public class Dddm3 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("输入QQ号码:");
        String qq = sc.nextLine();
        System.out.println("checkQQ:"+checkQQ(qq));
    }

    private static boolean checkQQ(String qq) {
        return qq.matches("[1-9]{1}\d{4,14}");
    }
}
请输入您的QQ号码:
2569546797
checkQQ:true
五、 总结

正则表达式在字符串中的使用非常多,以上只是一些常见的使用。正则表达式相对于普通的字符串,更加智能化,所以要掌握好正则表达式的使用。加油!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631409.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号