Java038——正则表达式

一、认识正则表达式

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

元字符				正则表达式中的写法						意义		
. 							.							任意一个字符
\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 都是和正则表达式匹配的字符串。方括号元字符还可以为其他格式。如:

   方括号表达式				说明
======================================================================================================================
	表示枚举				例如[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]

简单例子

[^456]: 代表 456之外的任何字符。
[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 次或多次。限定修饰符的用法如下 所示。

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

四、Java 正则表达式使用

  1. 导入 Java 正则表达式库:
    在代码中首先导入 java.util.regex 包,以便使用正则表达式相关的类和方法。
import java.util.regex.*;
  1. 实例:使用Java使用正则表达式判断字符串变量str以wang开头以5688结尾
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基础专栏完整学习》

你可能感兴趣的:(Java全套学习笔记,正则表达式,mysql,数据库)