基本應用:
//生成乙個模式
pattern p = pattern.compile("ab");
//匹配乙個母串
matcher m = p.matcher("abdbdaabddfabbc");
//查詢是否匹配,此操作是下列各操作的前提操作,若不進行查詢,下列各操作均會出現異常。
boolean b = m.find()); ----true
int start = matcher.start(); //查詢匹配串的起始字母的位置 --- 0
int end = matcher.end(); //查詢匹配串的結束字母的位置 --- 2
boolean b = m.find()); //查詢下乙個匹配串 ---true
boolean b = m.matches() //查詢是否完全匹配 ----false
boolean b = m.lookingat() //查詢是否從頭匹配 ---true
//乙個模式可以更換其匹配的母串: m.reset();
可以利用「全部替換」功能將空白符替換為單一空格:
string patternstr = "//s+";
string replacestr = " ";
pattern pattern = pattern.compile(patternstr);
matcher matcher = pattern.matcher(「a b c d」);
return matcher.replaceall(replacestr);
高階的替換,每次替換的內容不一樣:
分組匹配:
//乙個複雜的正規表示式,可以根據括號來分成若干個組,你在進行匹配的時候,可以使用全部內容進行匹配,
//也可以使用其中的某乙個組進行匹配。組的編號從0開始,0表示全部,1表示第一組,2表示第二組……
charsequence inputstr = "abbabcd";
string patternstr = "(a(b*))+(c*)";
// compile and use regular expression
pattern pattern = pattern.compile(patternstr);
matcher matcher = pattern.matcher(inputstr);
boolean matchfound = matcher.find();
if (matchfound)
}//對於上述例子,共分3組分別是(a(b*))、(b*)、(c*)
//本來第一組應該匹配abb,但是它發現bb和第二組完全匹配,本著互不干涉的原則,
//第一組只能匹配a,這是分組匹配時乙個需要注意的地方。
在求子串起始位置和結束位置時需要注意的地方:
matcher.find();
matcher.end(); //是按照整個模式進行匹配後,子串的結束位置
matcher.find();
matcher.grout(1);
matcher.end(); //是按照組1匹配後,子串的結束位置。
在檔案輸入流中進行匹配,不合要求的不讀取:
string filename = "infile.txt";
string pattern = "pattern";
bufferedreader rd = new bufferedreader(new filereader(filename));
rd = new bufferedreader(new regexreader(rd, pattern));
// retrieve all lines that match pattern
string line = null;
while ((line = rd.readline()) != null) {
// line matches the pattern
Java中正規表示式
jakarta oro一套文字處理工具,能提供perl5.0相容的正規表示式,awk like正規表示式,glob表示式。還提供替換,分割,檔名過慮等功能package com.yesky.apachelog.util.regex import org.apache.oro.text.regex.m...
Java中 正規表示式
字元類 abc a b 或 c abc 任何字元,除了abc a za z a 到 z 或 a 到 z 兩頭的字母包括在內 0 9 0到9 的字元都包括 預定義字元類 任何字元 d 數字 0 9 示例 判斷手機號的規則 string regex 1 3 9 d boolean flag phone....
Java中正規表示式的使用
正規表示式需要先建立乙個pattern,然後再用這個物件去match乙個字串,然後程式會把匹配的字串儲存在matcher物件,你可以通過find屈遍歷這個matcher,得到每乙個子串。以下是我寫的樣例程式 string content 1.gif fdjalkfd 2.gif fasdafsd p...