文章目录
正则表达式前言正则表达式规范常用正则规范数量表示(X表示一组规范)逻辑运算符(X、Y表示一组规范)
支持正则的Pattern类和Matcher类案例演示运行结果
String类对正则表达式的支持String类的正则支持案例演示运行结果
总结
正则表达式
前言
正则表达式在编程界是一种非常重要的应用,使用正则表达式可以方便地对数据进行匹配,还可以执行更加复杂地字符串验证、拆分、替换的功能。
正则表达式规范
常用正则规范
序号规范描述序号规范描述
1\\表示反斜线(\)字符9\w表示字母、数字、下划线2\t表示制表符10\W表示非字母、数字、下划线3\n表示换行11\s表示所有空白字符(换行、空格等)4[abc]字符a、b或c12\S表示所有非空白字符5[^abc]表示除了a、b、c之外的任意字符13^行的开头6[a-zA-Z0-9]表示由字母、数字组成14$行的结束7\d表示数字15.匹配除了换行符之外的任意字符8\D表示非数字
数量表示(X表示一组规范)
序号规范描述序号规范描述
1X必须出现一次5X{n}必须出现n次2X?可以出现0次或1次6X{n,}必须出现n次以上3X*可以出现0次、1次或多次7X{n,m}必须出现n~m次4X+可以出现1次或多次
逻辑运算符(X、Y表示一组规范)
序号规范描述序号规范描述
1XYX规范后跟着Y规范3(X)作为一个捕获组规范2X|YX规范或Y规范
支持正则的Pattern类和Matcher类
在java.util.regex包中的Pattern、Matcher两个类支持在程序中应用Pattern类和Matcher类。
Pattern类负责定义正则表达式规范,即:Pattern p = Pattern.compile(String regex)设置正则表达式规则,Mathcer m = Pattern.matcher(String str)获取Matcher类实例化对象。
Matcher类实例化对象可以通过matches()方法判断此字符串是否满足正则表达式规则。
案例演示
package chapter_eleven
;
import java
.util
.regex
.Matcher
;
import java
.util
.regex
.Pattern
;
public class RegexDemo01 {
public static void main(String
[] args
) {
String str
= "1234567890";
Pattern pattern
= Pattern
.compile("[0-9]+");
Matcher matcher
= pattern
.matcher(str
);
if(matcher
.matches()){
System
.out
.println("合法的字符串!");
}else {
System
.out
.println("不合法的字符串!");
}
}
}
运行结果
合法的字符串
!
String类对正则表达式的支持
在String类中有3个方法支持正则操作
String类的正则支持
序号方法类型描述
1public boolean matches(String regex)普通字符串匹配2public String replaceAll(String regex, String replacement)普通字符串替换3public String[] split(String regex)普通字符串拆分
案例演示
package chapter_eleven
;
public class RegexDemo02 {
public static void main(String
[] args
) {
String str
= "A059B321C456D321E543";
boolean flag
= str
.matches("([A-Z][0-9]{3})+");
String
[] strs
= str
.split("[0-9]+");
String strReplace
= str
.replaceAll("\\d+","\t");
System
.out
.println("正则匹配的结果---->" + flag
);
System
.out
.println("正则替换的结果---->" + strReplace
);
System
.out
.print("正则拆分的结果---->");
for (int i
= 0; i
< strs
.length
; i
++){
System
.out
.print(strs
[i
] + "、");
}
}
}
运行结果
正则匹配的结果
---->true
正则替换的结果
---->A B C D E
正则拆分的结果
---->A、B、C、D、E、
总结
使用正则表达式可以方便地对字符串进行验证、拆分、替换等复杂地功能,在开发中经常会用到String类提供地正则支持,而很少采用Pattern和Matcher类,运用一些正则表达式时,要注意对一些敏感的字符进行转义操作。