正則表達式是很常見的。但是也是很容易出錯的。
所以,整理了寫 Java正則表達式的方法。
pattern(模式)。split(分割_成數組)。compile(編譯)、matcher(匹配器)
.+ 表示任何不為空的 、 \\. 表示轉譯為 . ^開頭 $結尾
? 表示為懶惰模式。匹配到第一個滿足的就停止 * :0到無窮 + :1到無窮
\d 數字:[0-9] \D 非數字:[^0-9] \w數字和字母[a-zA-Z0-9] \W 非數字和字母 [^a-zA-Z0-9]
在一些語言裡,"\\"的意思是"在正則表達式裡插入一個反斜槓。"但是在Java裡,"\\"的意思是"要插入一個正則表達式 的反斜槓,
那麼java正則表達式就應該是"\\w+"。如果要插入一個反斜槓,那就得用"\\\\"。
java像換行,跳格之類的只用一根反斜槓"\n\t"。
example:
Pattern pattern = Pattern.compile("[, |]+");
String[] strs = pattern.split("Java Hello World Java,Hello,,World|Sun");
for (int i = 0; i < strs.length; i++) {
System.out.print("\t" + strs[i]);
}
輸出結果 為: Java Hello World Java Hello World Sun
驗證郵箱地址:
String str2 = "[email protected]";
Pattern pattern5 = Pattern.compile(".+@.+\\..+?");
Matcher matcher5 = pattern5.matcher(str2);
System.out.print("\n" + matcher5.matches()); //返回 布爾值
去除html標記:
Pattern pattern6 = Pattern.compile("<.+?>");
Matcher matcher6 = pattern6.matcher("<a href=\"index.html\">主頁</a>");
String string = matcher6.replaceAll("");
System.out.println("\r" + string);
// 截取url
Pattern pattern8 = Pattern.compile("<http://.+?>");
Matcher matcher8 = pattern8.matcher("dsdsds<http://www.baidu.com/>fdf");
if (matcher8.find()) {
System.out.println(matcher8.group()); // 返回匹配的字符串
}
簡單的:
example:
String str = "正則表達式 Hello World,正則表達式 Hello World ";
str.replace("hello" , "我要替換hello")
篩選數字
public Double regexGetMath(String matcher) {
Pattern pattern = Pattern.compile("[^0-9/.]");
Matcher match = pattern.matcher(matcher);
String getStr = match.replaceAll("");
Double getNum = Double.parseDouble(getStr);
return getNum;
}
篩選字符串
public String regexGetLetterLow(String matcher) {
Pattern pattern = Pattern.compile("[^a-zA-Z]");
Matcher match = pattern.matcher(matcher);
String getStr = match.replaceAll("").toLowerCase();
return getStr;
}
原文: http://www.cnblogs.com/zhongmeizhi/p/6306933.html