更新時間:2021-05-10 16:13:21 來源:動力節(jié)點(diǎn) 瀏覽1369次
正則表達(dá)式定義了字符串的模式。正則表達(dá)式可以用來搜索、編輯或處理文本。正則表達(dá)式并不僅限于某一種語言,但是在每種語言中有細(xì)微的差別。Java正則表達(dá)式和Perl的是最為相似的。
Java正則表達(dá)式的類在java.util.regex包中,包括三個類:Pattern,Matcher和PatternSyntaxException。

我們今天就來說說PatternSyntaxException:
PatternSyntaxException是一個非強(qiáng)制異常類,它表示一個正則表達(dá)式模式中的語法錯誤。
以下實(shí)例中使用了正則表達(dá)式.*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
*/
捕獲組:
捕獲組是把多個字符當(dāng)一個單獨(dú)單元進(jìn)行處理的方法,它通過對括號內(nèi)的字符分組來創(chuàng)建??梢酝ㄟ^調(diào)用matcher對象的groupCount方法來查看表達(dá)式有多少個分組。groupCount方法返回一個int值,表示matcher對象當(dāng)前有多個捕獲組。
還有一個特殊的組(group(0)),它總是代表整個表達(dá)式。該組不包括在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+)(.*)";
//創(chuàng)建Pattern對象
Pattern p=Pattern.compile(pattern);
//創(chuàng)建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正則表達(dá)式語法:
在其他語言中,\表示:我想要在正則表達(dá)式中插入一個普通的(字面上的)反斜杠,請不要給它任何特殊的意義。
在Java中,\表示:我要插入一個正則表達(dá)式的反斜線,所以其后的字符具有特殊的意義。
所以,在其他的語言中(如Perl),一個反斜杠就足以具有轉(zhuǎn)義的作用,而在Java中正則表達(dá)式中則需要有兩個反斜杠才能被解析為其他語言中的轉(zhuǎn)義作用。也可以簡單的理解在Java的正則表達(dá)式中,兩個\代表其他語言中的一個,這也就是為什么表示一位數(shù)字的正則表達(dá)式是\d,而表示一個普通的反斜杠是\\。
以上就是動力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)的小編針對“動力節(jié)點(diǎn)教你如何使用Java使用正則表達(dá)式”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

初級 202925

初級 203221

初級 202629

初級 203743