我們寫代碼時經常遇到要對字符串進行校驗、提取、替換等操作,利用正則表達式可以很方便地完成這些處理。Java原生支持正則表達式,但使用時有些地方需要注意。
JDK的正則表達式涉及2個類:Pattern和Matcher。
Pattern,表示一個正則表達式對象。
Matcher,通過Pattern對象的matcher方法生成,參數是我們的原始字符串。表示Pattern對象對這個字符串進行正則相關操作的入口對象。後面的正則操作都要利用這個Matcher對象。
注意事項:
1、Java字符串雙斜槓\才能表示轉義,可以理解成第1個斜槓轉義第2個斜槓。所以對.和$這些特殊字符轉義,Java裏面要表示爲\.和\$。這個問題IDE會給我們提示。
2、Java使用正則表達式的一般代碼
String str = "請繳費10.01元";
Pattern p = Pattern.compile("\.\d+");
Matcher matcher = p.matcher(str);
if(matcher.matches()){
//找到第1個匹配的起始座標
int start = matcher.start();
//找到第1個匹配的結尾的下一個元素座標
int end = matcher.end();
//返回第1個匹配的字符串
String mstr = matcher.group();
}
前面說過,matcher是入口對象。要先執行查找操作,才能執行結果操作。
我們把Matcher對象方法分個類:
查找操作:find()、matches()等
結果操作:start()、end()、group()等
3、使用Matcher的replaceFirst和replaceAll操作,replacement字符串要注意正則表達式特殊字符$
// 運營報錯
String newStr = matcher.replaceAll("$" + origin + "$");
// 正確
String newStr = matcher.replaceAll("\\$" + origin + "\\$");