JAVA中正则表达式小总结(整理)
正则表达式的基本语法
正则表达式的语法分为两个部分,一个是元字符的语法,一个是限定符的语法。元字符代表一种类型的字符,在正则表达式中可以被用于匹配对应的字符,限定符用于限定匹配的次数。
- 元字符的语法
元字符 | 说明 |
---|---|
. | 匹配任意单个字符 |
\ | 转义字符 |
[] | 匹配中括号内的任意一个字符 |
[^] | 匹配不在中括号内的任意一个字符 |
() | 匹配括号内的表达式 |
* | 重复匹配0次或多次 |
+ | 重复匹配1次或多次 |
? | 重复匹配0次或1次 |
\d | 匹配数字 |
\D | 匹配非数字 |
- 限定符的语法
限定符 | 说明 |
---|---|
{m,n} | 重复匹配m次到n次 |
{m,} | 重复匹配m次或多次 |
{m} | 重复匹配m次 |
在JAVA中使用正则表达式
在JAVA中使用正则表达式需要先将正则表达式编译成Pattern对象,然后再通过Matcher对象来进行匹配。
String regex = "a(b)+";
String input = "abbbbababbbb";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println(matcher.group());
}
上面的代码使用了正则表达式"ab+"来匹配字符串"abbbbababbbb"中的所有匹配结果。其中,find()方法用于寻找下一个匹配结果,group()方法用于获取当前匹配结果的字符串。
常见正则表达式应用场景举例
匹配身份证号码
String regex = "\\d{17}[0-9Xx]";
String input = "330302198602058252";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
System.out.println("身份证号码格式正确");
} else {
System.out.println("身份证号码格式错误");
}
匹配手机号码
String regex = "^1[3-9]\\d{9}$";
String input = "13812345678";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
System.out.println("手机号码格式正确");
} else {
System.out.println("手机号码格式错误");
}
总结
- 正则表达式的语法分为元字符的语法和限定符的语法
- 在JAVA中使用正则表达式需要先编译成Pattern对象,然后使用Matcher对象进行匹配
- 正则表达式在JAVA中的应用非常广泛,可以用于各种字符串匹配、替换等操作
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA中正则表达式小总结(整理) - Python技术站