JAVA正则表达式陈广佳版本(超详细)攻略
什么是正则表达式
正则表达式是一种由字符和运算符组成的字符模式,用于匹配一系列文本中的字符串。在JAVA中,正则表达式是使用java.util.regex包中的类进行处理。
正则表达式语法
基本元字符
- . :表示任意一个字符(除了换行符)。
- \ :转义字符。
- []:表示一个字符集合。比如[abc]表示a或b或c。
- [^]:表示一个不在集合内的字符。比如[^abc]表示不是a或b或c的字符。
- \d:表示数字字符。相当于[0-9]。
- \D:表示非数字字符。相当于[^0-9]。
- \w:表示单词字符(字母、数字、下划线)。相当于[A-Za-z0-9_]。
- \W:表示非单词字符。相当于[^A-Za-z0-9_]。
- \s:表示空白字符。包括空格、制表符、换页符等空白字符。
- \S:表示非空白字符。
量词元字符
-
- :表示0个或多个。
-
- :表示1个或多个。
- ? :表示0个或1个。
- {n}:表示正好出现n次。
- {n,}:表示至少出现n次。
- {n,m}:表示至少出现n次,但不超过m次。
边界元字符
- ^ :表示字符串的开头。
- $ :表示字符串的结尾。
- \b:表示单词的边界。
- \B:表示非单词的边界。
分组元字符
- ():表示分组,可以将多个元字符组合在一起进行匹配。比如(a|b)表示匹配a或者b。
- (?:):表示只匹配,但不捕获。
JAVA中的正则表达式方法
JAVA中的正则表达式方法主要是通过Pattern和Matcher两个类实现的。
Pattern类
Pattern类表示一个正则表达式的编译后的表现形式。常用的方法有:
- compile(String regex):将正则表达式编译为一个Pattern对象。
- matcher(CharSequence input):通过一个CharSequence(可以是String)对象创建一个Matcher对象。
Matcher类
Matcher类表示一个正则表达式在一个字符串上的匹配结果。常用的方法有:
- matches():判断整个文本是否匹配正则表达式。
- find():查找下一个匹配的子串。
- group():返回匹配的整个子串。
- group(int group):返回匹配的第group个子串。
- start():返回匹配的子串在原文本中的开始位置。
- end():返回匹配的子串在原文本中的结束位置。
常见应用示例
匹配数字
String regex = "\\d+";
String text = "123abc456";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println(matcher.group());
}
输出:
123
456
匹配电话号码
String regex = "(\\d{3,4}-)?\\d{7,8}";
String text = "021-1234567, 12345678";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println(matcher.group());
}
输出:
021-1234567
12345678
总结
通过本文的介绍,可以知道JAVA中正则表达式的基本语法和常用方法,以及常见应用示例。掌握正则表达式能够为文本匹配和替换提供很大的便利,也是JAVA开发中的基础技能之一。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA 正则表达式陈广佳版本(超详细) - Python技术站