Java038——正则表达式

一、认识正则表达式

正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。例如,"\d"表示数字 0~9 中的任何一个,"d"就是元字符。正则表达式中的元字符及其意义下所示。

java 复制代码
元字符				正则表达式中的写法						意义		
. 							.							任意一个字符
\d							\\d							0~9 的任何一个数字
\D							\\D							任何一个非数字字符
\s							\\s							空白字符,如'\t'、'\n'
\S							\\S							非空白字符
\w							\\w							可用于标识符的字符,但不包括"$"
\W							\\W							不可用于标识符的字符
\p{Lower}					\\p{Lower}					小写字母 a~z
\p{Upper}					\\p{Upper}					大写字母 A~Z
\p{ASCI}					\\P{ASCI}					ASCI 字符
\p(Alpha}					\\p(Alpha}					字母字符
\p{Digit}					\\p{Digit}					十进制数字,即 0~9
\p{Alnum}					\\p{Alnum}					数字或字母字符
\p{Punct}					\\p{Punct}					标点符号: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
\p{Graph}					\\p{Graph}					可见字符:[\p{Alnum}\p{Punct}]
\p{Print}					\\p{Print}					可打印字符:[\p{Graph}\x20]
\p{Blank}					\\p{Blank}					空格或制表符:[\t]
\p{Cntrl}					\\p{Cntrl}					控制字符:[\x00-\x1Fx7F]

在正则表达式中,"."代表任何一个字符,因此在正则表达式中如果想使用普通意义的点字符"."必须使用转义字符"/"

二、在正则表达式中方括号的作用

在正则表达式中,可以使用方括号括起若干个字符来表示一个元字符,该元字符可代表方括号中的任何一个字符。例如,reg ="[abc]4",这样字符串 a4、b4、c4 都是和正则表达式匹配的字符串。方括号元字符还可以为其他格式。如:

java 复制代码
   方括号表达式				说明
======================================================================================================================
	表示枚举				例如[abc]表示 a、b、c 其中任意一个字符;[gz]表示 g、z 其中任意一个字符
----------------------------------------------------------------------------------------------------------------------
	表示范围:-			例如[a-f]表示 a~f 范围内的任意字符;[\\u0041-\\u0056]表示十六进制字符 \u0041 到 \u0056 范围的字符。范围
						可以	和枚举结合使用,如[a-cx-z],表示 a~c、x~z 范围内的任意字符
----------------------------------------------------------------------------------------------------------------------
	表示求否:^			例如[^abc]表示非 a、b、c 的任意字符;[^a-f]表示不是 a~f 范围内的任意字符
----------------------------------------------------------------------------------------------------------------------
	表示"与"运算:&&		例如 [a-z&&[def]]是 a~z 和 [def] 的交集,表示 d、ef[a-z&&^bc]]是 a~z 范围内的所有字符,除 b 和 c 之外
						[ad-z] [a-z&&[m-p]]是 a~z 范围内的所有字符,除 m~p 范围之外的字符
----------------------------------------------------------------------------------------------------------------------
	表示"并"运算			并运算与前面的枚举类似。例如[a-d[m-p]]表示 [a-dm-p]

简单例子

java 复制代码
[^456]: 代表 4、5、6之外的任何字符。
[a-r]: 代表 a~r 中的任何一个字母。
[a-zA-Z]: 可表示任意一个英文字母。
[a-e[g-z]]:代表 a~e 或 g~z 中的任何一个字母 (并运算)。
[a-o&&[def]]: 代表字母 d、e、f (交运算)。
[a-d&&[^bc]]: 代表字母 a、d (差运算)。

三、在正则表达式中使用限定修饰符

在正则表达式中允许使用限定修饰符来限定元字符出现的次数。例如,"A*"代表 A 可在字符串中出现 0 次或多次。限定修饰符的用法如下 所示。

java 复制代码
限定修饰符		   意义			示例
	?			0次或1次			A?
	*			0次或多次		A*
	+			1次或多次		A+
	{n}			正好出现n次		A{2}
	{n,}		至少出现n次		A{3,}	
	{n,m}		出现n~m次		A{2,6}

四、Java 正则表达式使用

  1. 导入 Java 正则表达式库:
    在代码中首先导入 java.util.regex 包,以便使用正则表达式相关的类和方法。
java 复制代码
import java.util.regex.*;
  1. 实例:使用Java使用正则表达式判断字符串变量str以wang开头以5688结尾
java 复制代码
package MyPackage;

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

public class TestDemo{
    public static void main(String[] args) {
        String str = "wang12345688";

        // 1、定义正则表达式
        String regex = "^wang.*5688$";

        // 2、编译正则表达式为 Pattern 对象
        Pattern pattern = Pattern.compile(regex);

        // 3、创建 Matcher 对象,用于进行匹配
        Matcher matcher = pattern.matcher(str);

        // 4、判断是否匹配成功
        if (matcher.matches()) {
            System.out.println("字符串匹配成功");
        } else {
            System.out.println("字符串匹配失败");
        }
    }
}

//运行结果
字符串匹配成功

推荐文章《Java正则表达式详解》

与君共享

👉👉👉👉👉最后,有兴趣的小伙伴可以点击下面链接,这里有我整理的完整Java学习博客内容,谢谢~ 🌹🌹🌹🌹🌹

《Java基础专栏完整学习》

相关推荐
羑悻的小杀马特7 分钟前
PostgreSQL + Cpolar 组合拳,彻底打破局域网限制,远程访问数据库像本地一样简单
数据库·postgresql
松涛和鸣15 分钟前
DAY61 IMX6ULL UART Serial Communication Practice
linux·服务器·网络·arm开发·数据库·驱动开发
二哈喇子!2 小时前
MySQL数据库概述
mysql
二哈喇子!6 小时前
MySQL数据更新操作
数据库·sql
二哈喇子!6 小时前
MySQL命令行导入数据库
数据库·sql·mysql·vs code
心动啊1216 小时前
SQLAlchemy 的使用
数据库
曾经的三心草8 小时前
redis-2-数据结构内部编码-单线程-String命令
数据结构·数据库·redis
二哈喇子!8 小时前
基于SSM框架的公交车查询系统的设计与实现
java·数据库·ssm
Coder_Boy_8 小时前
基于SpringAI的在线考试系统-智能考试系统-学习分析模块
java·开发语言·数据库·spring boot·ddd·tdd
阿杰 AJie9 小时前
MySQL 聚合函数总表(完整版)
数据库·mysql