正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。例如,“\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]: 代表 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 次或多次。限定修饰符的用法如下 所示。
限定修饰符 意义 示例
? 0次或1次 A?
* 0次或多次 A*
+ 1次或多次 A+
{n} 正好出现n次 A{2}
{n,} 至少出现n次 A{3,}
{n,m} 出现n~m次 A{2,6}
import java.util.regex.*;
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基础专栏完整学习》