一文搞懂Java正则表达式的使用
什么是正则表达式
正则表达式是一种专门用于匹配字符串的工具,它由一些字符和符号构成,这些字符和符号用于描述字符串中某些部分的模式。Java中的正则表达式使用java.util.regex包进行支持,它提供了许多方法和类用于操作正则表达式。
正则表达式基本语法
字符
在正则表达式中,每个普通字符(除了特殊字符)都表示对应的一个字符。例如,\d表示匹配任意一个数字字符。因为在正则表达式中,某些符号有特殊的含义,如果想要匹配具有正则表达式特殊含义的符号,需要在前面加上反斜杠(\),例如,.表示匹配一个点号字符。下面列举一些常用的字符:
- \d 表示字符是一个数字。等价于[0-9]。
- \w 表示字符是一个单词字符(字母、数字、下划线)。等价于[A-Za-z0-9_]。
- \s 表示字符是一个空白字符(空格、制表符、换行符等)。等价于[\t\n\x0B\f\r]。
- \D 表示字符不是一个数字。等价于[^0-9]。
- \W 表示字符不是一个单词字符。等价于[^A-Za-z0-9_]。
- \S 表示字符不是一个空白字符。等价于[^\t\n\x0B\f\r]。
选择符
在正则表达式中,|表示或,用于把多个匹配项连接起来。例如,\b(cat|dog)\b表示匹配cat或者dog单词。
量词
在正则表达式中,量词用来表示某个模式重复出现的次数。例如,a{2,4}表示匹配连续出现2~4个a字符。下面列举一些常用的量词:
- ? 表示模式出现0次或1次
- + 表示模式出现1次或多次
- * 表示模式出现0次、1次或多次
- {n} 表示模式出现n次
- {n,} 表示模式出现n次或更多次
- {n,m} 表示模式出现n到m次
定位符
在正则表达式中,定位符用来指定匹配在字符串中的位置。例如,^表示匹配字符串的开头,$表示匹配字符串的结尾。
Java正则表达式实例
例1:验证手机号码
public boolean isMobileNO(String mobileNum){
String MOBILE_NUM_PATTERN = "^1[3|4|5|6|7|8|9][0-9]{9}$";
Pattern pattern = Pattern.compile(MOBILE_NUM_PATTERN);
Matcher matcher = pattern.matcher(mobileNum);
return matcher.matches();
}
上述实例使用了正则表达式来验证手机号码。正则表达式" ^1[3|4|5|6|7|8|9][0-9]{9}$ "表示:
- ^表示匹配字符串的开头
- 1表示匹配数字1
- [3|4|5|6|7|8]表示匹配3、4、5、6、7、8中任意一个数字
- [0-9]{9}表示匹配9个数字
- $表示匹配字符串的结尾
例2:替换关键字
public String replaceKeyWords(String originalStr){
String KEY_WORDS_PATTERN = "Java|Python";
Pattern pattern = Pattern.compile(KEY_WORDS_PATTERN);
Matcher matcher = pattern.matcher(originalStr);
String result = matcher.replaceAll("Java & Python");
return result;
}
上述实例使用了正则表达式来替换关键字。正则表达式"Java|Python"表示匹配Java或Python。matcher.replaceAll()方法将匹配到的字符串替换成"Java & Python"。
总结
本文简要介绍了Java正则表达式的基本语法以及两个使用实例。只要掌握了正则表达式基本语法和使用方法,就可以快速编写出常用的正则表达式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文搞懂Java正则表达式的使用 - Python技术站