更新時間:2020-06-19 13:32:00 來源:動力節(jié)點(diǎn) 瀏覽3064次
包java.util.regex包含三個類,以支持正則表達(dá)式的完整版本。
模式
匹配
PatternSyntaxException
Pattern保存正則表達(dá)式的編譯形式。
Matcher將要匹配的字符串與模式相關(guān)聯(lián),并執(zhí)行實(shí)際匹配。
PatternSyntaxException表示格式錯誤的正則表達(dá)式中的錯誤。
編譯正則表達(dá)式
沒有公共構(gòu)造函數(shù)的模式是不可變的,可以共享。
Pattern類包含一個靜態(tài)compile()方法,它返回一個Pattern對象。
compile()方法是重載的。
static Pattern compile(String regex)
static Pattern compile(String regex,int flags)
以下代碼將正則表達(dá)式編譯為Pattern對象:
import?java.util.regex.Pattern;
public?class?Main?{
?public?static?void?main(String[]?args)?{
?//?Prepare?a?regular?expression
?String?regex?=?"[a-z]@.";
?//?Compile?the?regular?expression?into?a?Pattern?object
?Pattern?p?=?Pattern.compile(regex);
?}
}
compile()方法的第二個版本設(shè)置修改模式匹配方式的標(biāo)志。
flags參數(shù)是一個位掩碼,并在Pattern類中定義為int常量。
Flag描述Pattern.CANON_EQ啟用規(guī)范等效。Pattern.CASE_INSENSITIVE啟用不區(qū)分大小寫的匹配。Pattern.COMMENTS啟用不區(qū)分大小寫的匹配。...Pattern.DOTALL允許在模式中的空格和注釋。
忽略以#開頭的空格和嵌入的注釋,直到行的結(jié)尾。Pattern.LITERAL啟用模式的文字解析。這個標(biāo)志使元字符和轉(zhuǎn)義序列作為正常字符。Pattern.MULTILINE啟用多行模式。默認(rèn)情況下,^和$匹配輸入序列的開始和結(jié)束。此標(biāo)志使模式僅逐行匹配或輸入序列的末尾。Pattern.UNICODE_CASE啟用支持Unicode的大小寫。與CASE_INSENSITIVE標(biāo)志一起,可以根據(jù)Unicode標(biāo)準(zhǔn)執(zhí)行不區(qū)分大小寫的匹配。Pattern.UNICODE_ CHARACTER_CLASS啟用預(yù)定義字符類和POSIX字符類的Unicode版本。設(shè)置此標(biāo)志時,預(yù)定義字符類和POSIX字符類符合Unicode技術(shù)標(biāo)準(zhǔn)。Pattern.UNIX_LINES啟用Unix行模式。設(shè)置此標(biāo)志時,只有\(zhòng)n字符被識別為行終止符。
例子
以下代碼編譯設(shè)置CASE_INSENSTIVE和DOTALL標(biāo)志的正則表達(dá)式。
import java.util.regex.Pattern;
public class Main{
public static void main(String[]args){
String regex="[a-z] .";
Pattern p=Pattern.compile(regex,Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
}
}
例2
import?java.util.regex.Matcher;
import?java.util.regex.Pattern;
public?class?Main?{
?public?static?void?main(String?args[])?{
?Pattern?p?=?Pattern.compile("java",?Pattern.CASE_INSENSITIVE);
?String?candidateString?=?"Java.?java?JAVA?jAVA";
?Matcher?matcher?=?p.matcher(candidateString);
?//?display?the?latter?match
?System.out.println(candidateString);
?matcher.find(11);
?System.out.println(matcher.group());
?//?display?the?earlier?match
?System.out.println(candidateString);
?matcher.find(0);
?System.out.println(matcher.group());
?}
}
上面的代碼生成以下結(jié)果。
以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對“Java注釋正則表達(dá)式模式”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743