Java 正则表达式详解攻略
什么是正则表达式
正则表达式是一种用来描述字符串的特定模式的表达式,是一种通用的字符串处理方式。用于快速的匹配、查找、替换和格式化文本。
Java中正则表达式的主要类为java.util.regex,支持正则表达式的操作有两种方式:String类对正则表达式的直接支持和利用java.util.regex包提供的支持。
正则表达式的语法
匹配单个字符
.
:匹配任意一个单个字符\d
:匹配任意一个数字\D
:匹配任意一个非数字字符\s
:匹配任意一个空白字符\S
:匹配任意一个非空白字符\w
:匹配任意一个字母、数字或下划线\W
:匹配任意一个非字母、数字或下划线
匹配多个字符
*
:匹配前一个字符的0或多个+
:匹配前一个字符的1或多个?
:匹配前一个字符的0或1个{n}
:匹配前一个字符的n个{n,}
:匹配前一个字符的至少n个{n,m}
:匹配前一个字符的n到m个
匹配位置
^
:匹配行首$
:匹配行尾\b
:匹配单词的边界位置\B
:匹配非单词的边界位置
匹配分组
()
:用于将多个字符分成一组进行匹配|
:匹配多个选项中的一个
正则表达式示例
// 匹配一个11位的手机号码
String regex = "^1\\d{10}$";
// 检测输入字符串是否是11位手机号码
String input = "13888888888";
boolean isMatch = Pattern.matches(regex, input);
System.out.println(isMatch); // true
// 匹配一个邮箱地址
String regex = "\\w+@[a-zA-Z0-9]+(\\.[a-zA-Z0-9]+)+";
// 检测输入字符串是否是邮箱地址
String input = "test@example.com";
boolean isMatch = Pattern.matches(regex, input);
System.out.println(isMatch); // true
正则表达式的常用操作
匹配替换字符串
String类提供了replace方法,可以根据正则表达式进行匹配替换。
// 将s1中的所有空格替换成逗号
String s1 = "hello world java";
String s2 = s1.replaceAll("\\s+", ",");
System.out.println(s2); // hello,world,java
正则表达式分割字符串
String类提供了split方法,可以根据正则表达式进行分割。
// 将s1中的任意一个空白符分割成数组
String s1 = "hello world\njava\tspring";
String[] arr = s1.split("\\s+");
for (String s : arr) {
System.out.println(s);
}
// hello
// world
// java
// spring
异常
使用正则表达式有可能会抛出PatternSyntaxException异常,该异常表示正则表达式语法错误。
结论
本文介绍了Java正则表达式的基本语法和常用操作,希望对读者在实际应用中有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 正则表达式详解 - Python技术站