- 相關推薦
java正則表達式
正則表達式的引擎已被許多普通的Unix工具所實現,包括grep,awk,vi和Emacs等。此外,許多使用比較廣泛的腳本語言也支持正則表達式,比如Python,Tcl,JavaScript,以及最著名的Perl。下面是小編為大家搜索整理的java正則表達式,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!
正則表達式定義了字符串的模式。
正則表達式可以用來搜索、編輯或處理文本。
正則表達式并不僅限于某一種語言,但是在每種語言中有細微的差別。
Java正則表達式和Perl的是最為相似的。
java.util.regex包主要包括以下三個類:
Pattern類:
pattern對象是一個正則表達式的編譯表示。Pattern類沒有公共構造方法。要創建一個Pattern對象,你必須首先調用其公共靜態編譯方法,它返回一個Pattern對象。該方法接受一個正則表達式作為它的第一個參數。
Matcher類:
Matcher對象是對輸入字符串進行解釋和匹配操作的引擎。與Pattern類一樣,Matcher也沒有公共構造方法。你需要調用Pattern對象的matcher方法來獲得一個Matcher對象。
PatternSyntaxException:
PatternSyntaxException是一個非強制異常類,它表示一個正則表達式模式中的語法錯誤。
捕獲組
捕獲組是把多個字符當一個單獨單元進行處理的方法,它通過對括號內的字符分組來創建。
例如,正則表達式(dog) 創建了單一分組,組里包含"d","o",和"g"。
捕獲組是通過從左至右計算其開括號來編號。例如,在表達式((A)(B(C))),有四個這樣的組:
((A)(B(C)))
(A)
(B(C))
(C)
可以通過調用matcher對象的groupCount方法來查看表達式有多少個分組。groupCount方法返回一個int值,表示matcher對象當前有多個捕獲組。
還有一個特殊的組(組0),它總是代表整個表達式。該組不包括在groupCount的返回值中。
實例
下面的例子說明如何從一個給定的字符串中找到數字串:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches
{
public static void main( String args[] ){
// 按指定模式在字符串查找
String line = "This order was placed for QT3000! OK?";
String pattern = "(.*)(\\d+)(.*)";
// 創建 Pattern 對象
Pattern r = Pattern.compile(pattern);
// 現在創建 matcher 對象
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );
System.out.println("Found value: " + m.group(1) );
System.out.println("Found value: " + m.group(2) );
} else {
System.out.println("NO MATCH");
}
}
}
以上實例編譯運行結果如下:
Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT300
Found value: 0
【java正則表達式】相關文章:
php漢字正則表達式06-03
js正則表達式是什么05-27
正則表達式過濾HTML危險腳本的實例09-22
PHP知識:正則表達式基礎知識10-14
C#正則表達式轉義字符介紹09-25
java教程之Java編程基礎09-12
PHP學習:正則表達式和字符串處理09-07
JAVA的就業方向10-09
Java 的分支結構10-27
java的應用范圍06-24