简介
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
作用
- 测试字符串内的模式。例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。
- 替换文本。可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
- 基于模式匹配从字符串中提取子字符串。可以查找文档内或输入域内特定的文本。
java正则
1.java.util.regex
-
Pattern 类:pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
-
Matcher 类:Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
-
PatternSyntaxException: PatternSyntaxException是一个非强制异常类,它表示一个正则表达式模式中的语法错误。
String content = "adbasasd"; String pattern = ".*ba.*"; //是否包含ba子串 boolean isMatch = Pattern.matches(pattern, content); //true
2.分组
捕获组是通过从左至右计算其开括号来编号。例如,在表达式((A)(B(C))),有四个这样的组:
( ( A ) (B ( C ) ) ),( A ),( B ( C ) ),( C )。
// 按指定模式在字符串查找
String line = "This order was placed for QT3000! OK?";
String pattern = "(\\D*)(\\d+)(.*)";
// 创建 Pattern 对象
Pattern r = Pattern.compile(pattern);
// 现在创建 matcher 对象
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );//This order was placed for QT3000! OK?
System.out.println("Found value: " + m.group(1) );//This order was placed for QT
System.out.println("Found value: " + m.group(2) );//3000
System.out.println("Found value: " + m.group(3) );//! OK?
} else {
System.out.println("NO MATCH");
}
}
3.语法
在其他语言中,\\ 表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义。在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。可以简单的理解在 Java 的正则表达式中,两个\\ 代表其他语言中的一个 \,这也就是为什么表示一位数字的正则表达式是 \\d,而表示一个普通的反斜杠是 4个反斜杠。
4.Matcher 类方法
5.模式匹配
6.替换方法
元字符

参考:
https://www.runoob.com/regexp/regexp-metachar.html
https://www.runoob.com/java/java-regular-expressions.html
来源:CSDN
作者:时代广场
链接:https://blog.csdn.net/weixin_43166227/article/details/103593527