【Java基础】Java正则表达式的使用

文章目录

  • 一、正则表达式规则
    • 1.字符类(只匹配一个字符)
    • 2.预定义字符(只匹配一个字符)
    • 3.数量词
  • 二、使用方法
  • 三、例题演示



一、正则表达式规则

1.字符类(只匹配一个字符)

[abc] abc中的一个
[^abc] 除了abc外的任意一个
[a-zA-Z],[a-z[A-Z]] a到z或A-Z中的一个
[a-c&&[bdf]] a到c与bdf交集中的一个,即b
[a-e&&[^f-g]] a到e和非f到g的交集

2.预定义字符(只匹配一个字符)

. 任意字符
\d 任意数字[0-9]
\D 非数字[^0-9]
\s 空白字符
\S 非空白字符
\w 英文字母,数字或下划线
\W 等同于[^\w],表示一个非单词字符

3.数量词

X? X出现一次或多次
X* X出现零次或多次
X+ X出现一次或多次
X{n} X出现n次
X{n,} X出现至少n次
X{n,m} X出现至少n次,最多m次

二、使用方法

调用字符串的matches方法
1.

public class Test {
    public static void main(String[] args) {
        String s = "abc";
        System.out.println(s.matches("[a-z][a-z][a-z]"));
    }
}
true
public class Test {
    public static void main(String[] args) {
        String s = "abc123456";
        System.out.println(s.matches("[a-z]{3}[0-9]{6}"));
    }
}
true

3.在使用预定义字符时需要在前面加一个转义字符\,表示有一个\。

public class Test {
    public static void main(String[] args) {
        String s = "abc123456";
        System.out.println(s.matches("\\w{9}"));
    }
}
true

也可以将正则表达式中的内容单独作为一个字符串,在使用正则表达式时直接将字符串代入。

public class Test {
    public static void main(String[] args) {
        String s = "abc123456";
        String s1 = "\\w{9}";
        System.out.println(s.matches(s));
    }
}

三、例题演示

1.检验一个手机号码是否正确(以数字1开头,长度为11)

public class Test {
    public static void main(String[] args) {
        String s = "12345678910";
        System.out.println(s.matches("[1][0-9]{10}"));
    }
}

2.校验邮箱格式是否正确(开头不能为0,@的左边可以是字母,数字或下划线,@右边到点.之间可以由字母或数字组成,点的右边为字母,如:a12cd_efg@qwe123.com)

public class Test {
    public static void main(String[] args) {
        String s = "a12cd_efg@qwe123.com";
        System.out.println(s.matches("[\\w&&[^0]]\\w{1,}[@][\\w&&[^_]]{1,}[\\.][a-z]{1,}"));
    }
}

字符" . " 为什么表示为"\ \ ." 。
1.在正则表达式中, “.“有特殊意思,所以匹配”.“时要用转义字符”\ “,所以在正则表达式中匹配”.“的表达式是” \ .”, 而在Java中,\又是特殊字符, 所以还要进行转义, 所以最终变成"\ \ ."
2.\ \ .实际上被转义为两次,\ \在java中被转换为一个’ \ ‘字符,然后’ \ .‘被传给正则,.表示对点字符进行转义,使.就表示字符’.',而不使用它在正则中的特殊意义
(来自百度搜索,准确性不能保证)文章来源地址https://uudwc.com/A/6zaZk

原文地址:https://blog.csdn.net/2202_75462083/article/details/128955848

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月24日 12:53
【Linux】从软硬件角度重新理解 [ 操作系统与冯诺依曼体系 ](8)
下一篇 2023年09月24日 12:57