JAVA中正規表示式的簡單應用

2021-04-08 13:23:05 字數 1977 閱讀 3731

基本應用:

//生成乙個模式

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...