Java中對字符串按 '+' , '*' , '|' , '.' 進行分割時的注意事項。

一、String 類中提供可以使用正則表達式的方法

  //判斷字符串是否匹配給定的正則表達式,如果匹配返回true.
1)public boolean matches(String regex)

  //根據匹配給定的正則表達式來拆分此字符串,limit 參數控制模式應用的次數,指定匹配的次數。
2)public String[] split(String regex, int limit) 


//使用給定的 replacement 替換此字符串所有匹配給定的正則表達式的子字符串。

 3) public String replaceAll(String regex, String replacement) 

注:" .","+ “,”*","| " 在正則表達式中有特殊的含義,因此在java中要使用這些符號對字符串進行分隔時,需要在前面加上"\\"。
即爲 " \\.", “\\+” ,"\\
", “\\| " 或者用”[.]""[+]""[
]""[|]" 。如果是"\",則爲\\\\"。

二、實例

     //判斷字符串是否全部是數字。
     String str3="5225662";
     System.out.println(str3.matches("\\d"));  //返回true

	1)對字符串str按'+'進行分隔
	  String str="12+38+3";
	  String[] arr=str.split("\\+");
	  for(String string:arr){
		  System.out.println(string);
	  }


     2)對字符串str按'|'進行分隔
       String str2="aa|bb|cc";
	  String[] arr2=str2.split("\\|");
	  for(String string:arr2){
		  System.out.println(string);
	  }
	  
	  3)對字符串按多個分隔符進行分隔,用"[]" 或者用'|'連接多個分隔符。

	  //使用"[]"對str4按'+'和'|' 進行分隔
       String str4="aaa|ccc+dddd";  
	   String[] arr4=str4.split("[|,+]");
	  for(String string:arr4){
		  System.out.println(string);
      }
      
	    //使用"|"對str5按'+'和'|' 進行分隔
	    String str5="aaa|ccc+dddd";  
	    String[] arr5=str5.split("\\+|\\|");
	    for(String string:arr5){
		   System.out.println(string);
        } 

三、java中的正則表達式

1)字符類
[abc] a、b 或 c(簡單類)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,兩頭的字母包括在內(範圍)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](並集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](減去)

2)預定義字符類
. 任何字符(與行結束符可能匹配也可能不匹配)
\d 數字:[0-9]
\D 非數字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 單詞字符:[a-zA-Z_0-9]
\W 非單詞字符:[^\w]

3)邊界匹配器

^ 行的開頭
$ 行的結尾
\b 單詞邊界
\B 非單詞邊界
\A 輸入的開頭
\G 上一個匹配的結尾
\Z 輸入的結尾,僅用於最後的結束符(如果有的話)
\z 輸入的結尾

4)Greedy 數量詞
X? X,一次或一次也沒有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超過 m 次

5)Logical 運算符

XY X後跟 Y
X|Y X 或 Y
(X) X,作爲捕獲組

注:根據Java Language Specification 的要求,Java 源代碼的字符串中的反斜線被解釋爲Unicode 轉義或其他字符轉義。因此必須在字符串字面值中使用兩個反斜線,表示正則表達式受到保護,不被 Java 字節碼編譯器解釋。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章