Java正则表达式

Java正则表达式,第1张

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
五、 总结

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5637283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存