JAVA Regex4種常用的功能

來源:互聯網
上載者:User

 Regex在字串處理上有著強大的功能,sun在jdk1.4加入了對它的支援 

下面簡單的說下它的4種常用功能:
查詢: 

以下是程式碼片段:

String str="abc efg ABC"; 

String regEx="a|f"; //表示a或f 

Pattern p=Pattern.compile(regEx); 

Matcher m=p.matcher(str); 

boolean rs=m.find();  
如果str中有regEx,那麼rs為true,否則為flase。如果想在尋找時忽略大小寫,則可以寫成Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);  
提取:

以下是程式碼片段:

String regEx=".+/(.+)$"; 

String str="c:/dir1/dir2/name.txt"; 

Pattern p=Pattern.compile(regEx); 

Matcher m=p.matcher(str); 

boolean rs=m.find(); 

for(int i=1;i<=m.groupCount();i++){ 

System.out.println(m.group(i)); 

}  
以上的執行結果為name.txt,提取的字串儲存在m.group(i)中,其中i最大值為m.groupCount(); 
分割: 

以下是程式碼片段:

String regEx="::"; 

Pattern p=Pattern.compile(regEx); 

String[] r=p.split("xd::abc::cde"); 

執行後,r就是{"xd","abc","cde"},其實分割時還有跟簡單的方法: 

String str="xd::abc::cde"; 

String[] r=str.split("::");  
替換(刪除):  

以下是程式碼片段:

String regEx="a+"; //表示一個或多個a 

Pattern p=Pattern.compile(regEx); 

Matcher m=p.matcher("aaabbced a ccdeaa"); 

String s=m.replaceAll("A"); 

結果為"Abbced A ccdeA"

如果寫成空串,既可達到刪除的功能,比如: 

    String s=m.replaceAll(""); 

結果為"bbced ccde"
附:

/D 等於 [^0-9] 非數字 

/s 等於 [ /t/n/x0B/f ] 空白字元 

/S 等於 [^ /t/n/x0B/f ] 非空白字元 

/w 等於 [a-zA-Z_0-9] 數字或是英文字 

/W 等於 [^a-zA-Z_0-9] 非數字與英文字 

^ 表示每行的開頭

$ 表示每行的結尾

轉自:http://java.chinaitlab.com/advance/350770.html

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.