java正则表达式及api_Java API 之 正则表达式
一、基本概念
在項(xiàng)目中我們經(jīng)常性做的一件事是“匹配”字符串
比如:
1、我們要驗(yàn)證用戶(hù)輸入的手機(jī)號(hào)是否合法?
2、驗(yàn)證設(shè)置的密碼是否符合規(guī)則?
3、或者替換指定字符串中的一些內(nèi)容。
這么一看,似乎正則表達(dá)式就是在查找、處理字符串。
二、如何使用
1、首先,我們需要定義一個(gè)模板(Pattern),這個(gè)模板描述了需要匹配的字符串的規(guī)則,這就是正則表達(dá)式。
2、模板有了,我們需要將要匹配的內(nèi)容和模板一起創(chuàng)建一個(gè)匹配器(Matcher)。
3、最后執(zhí)行匹配獲得返回的結(jié)果。
按照以上的步驟,我們寫(xiě)一個(gè)簡(jiǎn)單的示例:
importjava.util.regex.Matcher;importjava.util.regex.Pattern;/***@authorlay
* @date 2018/4/10.
* @time 17:19*/
public classRegexDemo {public static voidmain(String[] args) {//寫(xiě)一個(gè)正則模板
Pattern pattern = Pattern.compile("name");//獲取一個(gè)匹配器
Matcher matcher = pattern.matcher("name");//執(zhí)行操作
boolean isMatch =matcher.matches();//打印結(jié)果
System.out.println("isMatch=" +isMatch);
}
}
在這個(gè)示例中:
1、我們使用Pattern類(lèi)提供的方法compile()編譯出正則表達(dá)式"name",返回一個(gè)Pattern模板類(lèi);
2、通過(guò)pattern模板類(lèi)的matcher()方法獲取匹配器,傳入待處理的內(nèi)容"name";
3、匹配器調(diào)用方法matches()返回匹配結(jié)果。
4、最后打印結(jié)果為:isMatch=true
三、學(xué)習(xí)內(nèi)容
由以上的示例,我們可以了解到,對(duì)于Java的正則表達(dá)式我們需要學(xué)得的內(nèi)容有:
1、正則表達(dá)式如何寫(xiě);
2、Pattern類(lèi)的使用;
3、Matcher類(lèi)的使用;
四、正則表達(dá)式如何寫(xiě);
在查看API文檔的時(shí)候,介紹正則表達(dá)式語(yǔ)法的是這樣的:\d 表示數(shù)字,\s表示空白字符
那問(wèn)題在于,我們使用Pattern類(lèi)的complie()方法來(lái)創(chuàng)建模板,而compile()方法需要傳入的是一個(gè)字符串,例如:
Pattern pattern = Pattern.compile("name");
這樣的話我們要怎么寫(xiě)正則表達(dá)式語(yǔ)法呢?如下:
Pattern pattern = Pattern.compile("\\d");
我們看到,這里使用了 "\\d" 而不是語(yǔ)法說(shuō)的 "\d"。我們可以這樣理解:在 Java 中,\\?表示:我要插入一個(gè)正則表達(dá)式的反斜線,所以其后的字符具有特殊的意義。
例如:
\d -> \\d
\s -> \\s
\w -> \\w
正則表達(dá)式的語(yǔ)法可以參考:
五、Pattern類(lèi)和Matcher類(lèi)的使用
前面我們說(shuō)了,pattern類(lèi)是為了編譯模板,matcher用于構(gòu)建匹配器。其實(shí)就是示例化類(lèi),然后調(diào)用類(lèi)的方法。比如:
1、匹配是否有某個(gè)字符串:boolean isMatched = matcher.matches();
2、替換字符串:String newStr = matcher.replaceAll("替換的內(nèi)容");
六、總結(jié)
正則表達(dá)式即是為了匹配處理字符串而出現(xiàn)的,我們要做的即:
1、構(gòu)造模板;2、構(gòu)造匹配器;3、使用匹配器提供的方法處理字符串;
總結(jié)
以上是生活随笔為你收集整理的java正则表达式及api_Java API 之 正则表达式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: selenium ruby和java_S
- 下一篇: 19年助梦数万考生奔赴考场:全国唯一“高