成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Java深入 - Java的正則表達(dá)式 Pattern和Matcher

baiy / 757人閱讀

摘要:它包括兩個(gè)類(lèi)和一個(gè)是一個(gè)正則表達(dá)式經(jīng)編譯后的表現(xiàn)模式。這個(gè)標(biāo)志能讓表達(dá)式忽略大小寫(xiě)進(jìn)行匹配。默認(rèn)情況下,這兩個(gè)表達(dá)式僅僅匹配字符串的開(kāi)始和結(jié)束。返回當(dāng)前查找而獲得的與指定的組匹配的子串內(nèi)容

Pattern和Matcher
Java.util.regex 是一個(gè)用正則表達(dá)式所訂制的模式來(lái)對(duì)字符串進(jìn)行匹配工作的類(lèi)庫(kù)包。它包括兩個(gè)類(lèi):Pattern和Matcher
Pattern: 一個(gè)Pattern是一個(gè)正則表達(dá)式經(jīng)編譯后的表現(xiàn)模式。
Matcher: 一個(gè)Matcher對(duì)象是一個(gè)狀態(tài)機(jī)器,它依據(jù)Pattern對(duì)象做為匹配模式對(duì)字符串展開(kāi)匹配檢查。

Pattern類(lèi)
常用方法:
static Pattern compile(String regex) 將給定的正則表達(dá)式編譯并賦予給Pattern類(lèi)
static Pattern compile(String regex, int flags) flag參數(shù)的指定,可選的flag參數(shù)包括:CASE INSENSITIVE,MULTILINE,DOTALL,UNICODE CASE, CANON E
int flags() 返回當(dāng)前Pattern的匹配flag參數(shù).
[java] view plain copy print?在CODE上查看代碼片派生到我的代碼片
Pattern.CANON_EQ,當(dāng)且僅當(dāng)兩個(gè)字符的"正規(guī)分解(canonical decomposition)"都完全相同的情況下,才認(rèn)定匹配。

Pattern.CASE_INSENSITIVE(?i) 默認(rèn)情況下,大小寫(xiě)不敏感的匹配只適用于US-ASCII字符集。這個(gè)標(biāo)志能讓表達(dá)式忽略大小寫(xiě)進(jìn)行匹配。

Pattern.COMMENTS(?x)在這種模式下,匹配時(shí)會(huì)忽略(正則表達(dá)式里的)空格字符(不是指表達(dá)式里的"s",而是指表達(dá)式里的空格,tab,回車(chē)之類(lèi))。

Pattern.DOTALL(?s)在這種模式下,表達(dá)式"."可以匹配任意字符,包括表示一行的結(jié)束符。 默認(rèn)情況下,表達(dá)式"."不匹配行的結(jié)束符。

Pattern.MULTILINE(?m)在這種模式下,"^"和"$"分別匹配一行的開(kāi)始和結(jié)束。
此外,"^"仍然匹配字符串的開(kāi)始,"$"也匹配字符串的結(jié)束。默認(rèn)情況下,這兩個(gè)表達(dá)式僅僅匹配字符串的開(kāi)始和結(jié)束。

Pattern.UNICODE_CASE(?u)在這個(gè)模式下,如果你還啟用了CASE_INSENSITIVE標(biāo)志,
那么它會(huì)對(duì)Unicode字符進(jìn)行大小寫(xiě)不明感的匹配。默認(rèn)情況下,大小寫(xiě)不敏感的匹配只適用于US-ASCII字符集。

Pattern.UNIX_LINES(?d)在這個(gè)模式下,只有"n"才被認(rèn)作一行的中止,并且與".","^",以及"$"進(jìn)行匹配。

Matcher matcher(CharSequence input) 生成一個(gè)給定命名的Matcher對(duì)象
[java] view plain copy print?在CODE上查看代碼片派生到我的代碼片
Pattern p = Pattern.compile("《(.*)》");
Matcher m = p.matcher("《測(cè)試》匹配書(shū)名號(hào)中間的內(nèi)容");
while (m.find()) {

System.out.println(m.group(1));  

}

static boolean matches(String regex, CharSequence input)
String[] split(CharSequence input) 將目標(biāo)字符串按照Pattern里所包含的正則表達(dá)式為模進(jìn)行分割。
String[] split(CharSequence input, int limit) 作用同上,增加參數(shù)limit目的在于要指定分割的段數(shù)
[java] view plain copy print?在CODE上查看代碼片派生到我的代碼片
Pattern p = Pattern.compile("|");
String[] arr = p.split("woshishen|sadsadsa");
System.out.println(arr[0] + "----" + arr[1]);

Matcher類(lèi)
Matcher appendReplacement(StringBuffer sb, String replacement) 將當(dāng)前匹配子串替換為指定字符串,并且將替換后的子串以及其之前到上次匹配子串之后的字符串段添加到一個(gè)StringBuffer對(duì)象里。
StringBuffer appendTail(StringBuffer sb) 將最后一次匹配工作后剩余的字符串添加到一個(gè)StringBuffer對(duì)象里。
int end() 返回當(dāng)前匹配的子串的最后一個(gè)字符在原目標(biāo)字符串中的索引位置 。
int end(int group) 返回與匹配模式里指定的組相匹配的子串最后一個(gè)字符的位置。
boolean find() 嘗試在目標(biāo)字符串里查找下一個(gè)匹配子串。
boolean find(int start) 重設(shè)Matcher對(duì)象,并且嘗試在目標(biāo)字符串里從指定的位置開(kāi)始查找下一個(gè)匹配的子串。
String group() 返回當(dāng)前查找而獲得的與組匹配的所有子串內(nèi)容
String group(int group) 返回當(dāng)前查找而獲得的與指定的組匹配的子串內(nèi)容
int groupCount() 返回當(dāng)前查找所獲得的匹配組的數(shù)量。
boolean lookingAt() 檢測(cè)目標(biāo)字符串是否以匹配的子串起始。
boolean matches() 嘗試對(duì)整個(gè)目標(biāo)字符展開(kāi)匹配檢測(cè),也就是只有整個(gè)目標(biāo)字符串完全匹配時(shí)才返回真值。
Pattern pattern() 返回該Matcher對(duì)象的現(xiàn)有匹配模式,也就是對(duì)應(yīng)的Pattern 對(duì)象。
String replaceAll(String replacement) 將目標(biāo)字符串里與既有模式相匹配的子串全部替換為指定的字符串。
String replaceFirst(String replacement) 將目標(biāo)字符串里第一個(gè)與既有模式相匹配的子串替換為指定的字符串。
Matcher reset() 重設(shè)該Matcher對(duì)象。
Matcher reset(CharSequence input) 重設(shè)該Matcher對(duì)象并且指定一個(gè)新的目標(biāo)字符串。
int start() 返回當(dāng)前查找所獲子串的開(kāi)始字符在原目標(biāo)字符串中的位置。
int start(int group) 返回當(dāng)前查找所獲得的和指定組匹配的子串的第一個(gè)字符在原目標(biāo)字符串中的位置。

[java] view plain copy print?在CODE上查看代碼片派生到我的代碼片
Pattern p = Pattern.compile("(第(.+)部)");
Matcher m = p.matcher("大宋提刑官 第1");
while (m.find()) {

System.out.println(m.start()); //返回當(dāng)前查找所獲子串的開(kāi)始字符在原目標(biāo)字符串中的位置。  
System.out.println(m.end()); //返回與匹配模式里指定的組相匹配的子串最后一個(gè)字符的位置。  
System.out.println(m.group(2)); //返回當(dāng)前查找而獲得的與指定的組匹配的子串內(nèi)容   

}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/66921.html

相關(guān)文章

  • 正則達(dá)式 深入淺出2--從java API開(kāi)始

    摘要:正則表達(dá)式等待匹配的字符這里可以輸入任何繼承了的類(lèi)返回一個(gè)值說(shuō)明是否匹配這里需要注意的是,和均不允許通過(guò)構(gòu)造器新建一個(gè)對(duì)象。 前言 之前一直想要做一個(gè)自己的爬蟲(chóng),然后從nba數(shù)據(jù)相關(guān)的網(wǎng)上【虎撲,騰訊,官網(wǎng)等,要視網(wǎng)站是否支持】爬點(diǎn)數(shù)據(jù)寫(xiě)數(shù)據(jù)分析和圖形化展示。雖然年輕的時(shí)候就實(shí)現(xiàn)過(guò)這個(gè)功能,但是當(dāng)時(shí)直接借用了一個(gè)網(wǎng)上現(xiàn)成的jar包,然后在那個(gè)基礎(chǔ)上寫(xiě)了一個(gè)非常簡(jiǎn)陋的正則表達(dá)式來(lái)提取數(shù)據(jù)...

    andycall 評(píng)論0 收藏0
  • java正則表式使用

    摘要:直接使用正則表達(dá)式對(duì)輸入的字符串進(jìn)行匹配,匹配成功則返回使用正則表示式,進(jìn)行字符串分割進(jìn)行匹配操作,如果匹配成功,這三個(gè)方法都會(huì)返回其中,是在源字符串中找出和正則表達(dá)式匹配的字符串。 概念 正則表達(dá)式 在閱讀本文前,你應(yīng)該已經(jīng)了解了正則表達(dá)式的基本概念以及如何書(shū)寫(xiě)正則表達(dá)式。如果對(duì)正則表達(dá)式不是太了解,或者想更深入地了解正則表示式,請(qǐng)點(diǎn)擊這里。 捕獲組 捕獲組能夠讓我們方便地從正則表達(dá)...

    zoomdong 評(píng)論0 收藏0
  • Java 正則達(dá)式

    摘要:正則表達(dá)式是一個(gè)強(qiáng)大的字符串處理工具,可以對(duì)字符串進(jìn)行查找提取分隔替換等操作。例如,正則表達(dá)式用于匹配的三個(gè)訪(fǎng)問(wèn)控制符其中之一邊界匹配符數(shù)量標(biāo)識(shí)符貪婪模式數(shù)量表示符默認(rèn)采用貪婪模式。方法以空格為分隔符,將字符串分割成多個(gè)子串哈哈 正則表達(dá)式是一個(gè)強(qiáng)大的字符串處理工具,可以對(duì)字符串進(jìn)行查找、提取、分隔、替換等操作。String類(lèi)里提供了如下幾個(gè)特殊方法 boolean matches(...

    forrest23 評(píng)論0 收藏0
  • Java編程思想》筆記13.字符串

    摘要:的構(gòu)造器經(jīng)過(guò)重載可以接受多種輸出目的地,不過(guò)最常用的還是和。組號(hào)為表示整個(gè)表達(dá)式,組號(hào)表示被第一對(duì)括號(hào)括起的組,依此類(lèi)推。有多個(gè)重載的構(gòu)造器,可以接受和對(duì)象。 點(diǎn)擊進(jìn)入我的博客 字符串操作是計(jì)算機(jī)程序設(shè)計(jì)中最常見(jiàn)的行為 13.1 不可變String String底層是由char[]實(shí)現(xiàn)的,是不可變的。看起來(lái)會(huì)改變String的方法,實(shí)際上都是創(chuàng)建了一個(gè)新的String對(duì)象,任何指向它...

    since1986 評(píng)論0 收藏0
  • Java 正則達(dá)式

    摘要:正則表達(dá)式是從字符串最頭部開(kāi)始匹配,一直到結(jié)束,需要匹配整個(gè)串匹配的時(shí)候返回包含正則匹配的串為找到所有匹配的串代表整個(gè)表達(dá)式星座運(yùn)勢(shì)匹配創(chuàng)建對(duì)象現(xiàn)在創(chuàng)建對(duì)象星座運(yùn)勢(shì)星座運(yùn)勢(shì)參考資料 Java 正則表達(dá)式 java.util.regex.Pattern java.util.regex.Matcher Match match 是從字符串最頭部開(kāi)始匹配,一直到結(jié)束,需要匹配整個(gè)串 Strin...

    zebrayoung 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<