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

Java程序设计 正则表达式快速入门

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

Java程序设计 正则表达式快速入门

Java程序设计 正则表达式快速入门

利用正则表达式可以执行更加复杂的字符串的拆分、验证、替换等操作

不使用正则表达式验证字符串

public class Hello {
    public static void main(String[] args) {
        String s="123a";
        boolean flag = true;
        //将字符串转换为字符数组
        char c[] = s.toCharArray();
        for(int i=0;i '9') {
                flag = false;
                break;
            }
        }
        if(flag){
            System.out.println("字符串由数字构成");
        }else {
            System.out.println("字符串不是由数字构成");
        }
    }
}

使用正则表达式验证字符串

import java.util.regex.Pattern;
public class Hello {
    public static void main(String[] args) {
        String s="123456";
        if(Pattern.compile("[0-9]+").matcher(s).matches()){
            System.out.println("字符串由数字构成");
        }else {
            System.out.println("字符串不是由数字构成");
        }
    }
}

“[0-9]+”是正则表达式的匹配字符,表示由1个以上的数字组成

正则表达式操作类需要通过Pattern和Matcher两个类完成操作的

Pattern类的主要作用是进行正则规范

Matcher类主要是执行规范,验证一个字符串是否符合其规范

规范作用
\表示反斜线()字符
t表示制表符
n表示换行
[abc]字符a、b、c
[^abc]除了a、b、c之外的任意字符
[a-zA-Z0-9]表示由字母、数字组成
d表示数字
D表示非数字
w表示字母、数字、下划线
W表示非字母、数字、下划线
s表示所有空白字符
S表示所有非空白字符
^行的开头
$行的结尾
_匹配除换行符之外的任意字符

数量

规范作用
X必须出现一次
X?可以出现0次、1次
X*可以出现0次、1次、多次
X+可以出现1次、多次
X{n}必须出现n次
X{n.}必须出现n次以上
X{n,m}必须出现n-m次

逻辑运算符

规范作用
XYX规范后跟着Y规范
X|YX规范或Y规范
(X)作为一个捕获组规范
Pattern类的常用方法
方法作用
public static Pattern compile(String regex)指定正则表达式规则
public Matcher matcher(CharSequence input)返回Matcher类实例
public String[] split(CharSequence input)字符串拆分
Matcher类的常用方法
方法作用
public boolean matches()执行验证
public String replaceAll(String replacement)字符串替换

验证日期

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

public class Hello {
    public static void main(String[] args) {
        String s="2023年01月23日";
        if(Pattern.compile("\d{4}年\d{2}月\d{2}日").matcher(s).matches()){
            System.out.println("是日期");
        }else {
            System.out.println("不是日期");
        }
//        方式二
        Pattern p = Pattern.compile("\d{4}年\d{2}月\d{2}日");
        Matcher m = p.matcher(s);
        if(m.matches()){
            System.out.println("是日期");
        }else {
            System.out.println("不是日期");
        }
    }
}

使用正则表达式规则替换字符

除了数字其他全部替换成+

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

public class Hello {
    public static void main(String[] args) {
         String s ="ghj45fghj5g2t66h2g5g5h55fg8f7g7";
        Pattern p = Pattern.compile("\D+");
        Matcher m = p.matcher(s);
        String a = m.replaceAll("+");
        System.out.println(a);
    }
}

String类的正则支持方法
方法作用
public boolean matches(String regex)字符串匹配
public String replaceAll(String regex,String replacement)字符串替换
public String[] splic(String regex)字符串拆分
public class Hello {
    public static void main(String[] args) {
         String s ="ghj45fghj5g2t66h2g5g5h55fg8f7g7";
        String a = s.replaceAll("\D+","+");
        System.out.println(a);
        String b[] = s.split("5+");
        for(String x : b){
            System.out.print(x+" ");
        }
    }
}

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

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

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