文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-09-29 13:22

关注

文章目录



一、正则表达式规则

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

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

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开头,长度为11)

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

校验邮箱格式是否正确(开头不能为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://blog.csdn.net/2202_75462083/article/details/128955848

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯