更新時間:2021-05-10 16:13:21 來源:動力節點 瀏覽1083次
正則表達式定義了字符串的模式。正則表達式可以用來搜索、編輯或處理文本。正則表達式并不僅限于某一種語言,但是在每種語言中有細微的差別。Java正則表達式和Perl的是最為相似的。
Java正則表達式的類在java.util.regex包中,包括三個類:Pattern,Matcher和PatternSyntaxException。
我們今天就來說說PatternSyntaxException:
PatternSyntaxException是一個非強制異常類,它表示一個正則表達式模式中的語法錯誤。
以下實例中使用了正則表達式.*runoob.*用于查找字符串中是否包含了runoob子串:
package cc.bcy;
import java.util.regex.*;
public class RegexExample
{
public static void main(String[] args)
{
String content="I am noob from runoob.com";
String pattern=".*runoob.*";
boolean isMatch=Pattern.matches(pattern, content);
System.out.println("字符串中是否包含了‘runoob’子字符串?"+isMatch);
}
}
/*
字符串中是否包含了‘runoob’子字符串?true
*/
捕獲組:
捕獲組是把多個字符當一個單獨單元進行處理的方法,它通過對括號內的字符分組來創建。可以通過調用matcher對象的groupCount方法來查看表達式有多少個分組。groupCount方法返回一個int值,表示matcher對象當前有多個捕獲組。
還有一個特殊的組(group(0)),它總是代表整個表達式。該組不包括在groupCount的返回值中。
package cc.bcy;
import java.util.regex.*;
public class RegexExample
{
public static void main(String[] args)
{
String line="This order was placed for QT3000! OK?";
String pattern="(\\D*)(\\d+)(.*)";
//創建Pattern對象
Pattern p=Pattern.compile(pattern);
//創建Matcher對象
Matcher m=p.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));
System.out.println("Found value: "+m.group(3));
}
else
{
System.out.println("No Match!");
}
int n=m.groupCount();
System.out.println("一共有"+n+"個捕獲組");
}
}
/*
Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT
Found value: 3000
Found value: ! OK?
一共有3個捕獲組
*/
Java正則表達式語法:
在其他語言中,\表示:我想要在正則表達式中插入一個普通的(字面上的)反斜杠,請不要給它任何特殊的意義。
在Java中,\表示:我要插入一個正則表達式的反斜線,所以其后的字符具有特殊的意義。
所以,在其他的語言中(如Perl),一個反斜杠就足以具有轉義的作用,而在Java中正則表達式中則需要有兩個反斜杠才能被解析為其他語言中的轉義作用。也可以簡單的理解在Java的正則表達式中,兩個\代表其他語言中的一個,這也就是為什么表示一位數字的正則表達式是\d,而表示一個普通的反斜杠是\\。
以上就是動力節點Java培訓機構的小編針對“動力節點教你如何使用Java使用正則表達式”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習