java的matcher方法,Matcher 的方法
# Matcher 的方法
本節(jié)介紹了 Matcher 類的一些其他有用的方法。為了方便起見,下列方法根據(jù)功能進(jìn)行分組。
# 索引方法
索引方法提供了有用的索引值,它們精確地顯示了輸入字符串中匹配的位置: public int start():返回上一個(gè)匹配的起始索引。
public int start(int group):返回上次匹配操作期間給定組捕獲的子序列的起始索引。
public int end():返回最后一個(gè)字符匹配后的偏移量。
public int end(int group):返回在上一次匹配操作期間由給定組捕獲的子序列的最后一個(gè)字符之后的偏移量。
# 檢查方法 public boolean lookingAt():嘗試將輸入序列從區(qū)域開頭開始與模式相匹配。
public boolean find():嘗試找到匹配模式的輸入序列的下一個(gè)子序列。
public boolean find(int start):重置此匹配器,然后嘗試從指定的索引開始找到與模式匹配的輸入序列的下一個(gè)子序列。
public boolean matches():嘗試將整個(gè)區(qū)域與模式進(jìn)行匹配。
# 替換方法
替換方法是替換輸入字符串中的文本的有用方法。. public Matcher appendReplacement(StringBuffer sb, String replacement):執(zhí)行非終端附加和替換步驟。
public StringBuffer appendTail(StringBuffer sb):實(shí)現(xiàn)終端附加和替換步驟。
public String replaceAll(String replacement):將與模式匹配的輸入序列的每個(gè)子序列替換為給定的替換字符串。
public String replaceFirst(String replacement):將與模式匹配的輸入序列的第一個(gè)子序列替換為給定的替換字符串。
public static String quoteReplacement(String s):返回 String 指定的文字替換 String。該方法產(chǎn)生一個(gè)在類的方法中 String 作為文字替換 s 的 appendReplacement 方法 Matcher。所產(chǎn)生的字符串 s 將作為字面序列處理。斜杠('\')和美元符號(hào)('$')將沒有特殊意義。
# 使用 start 和 end 方法
下面的例子中將計(jì)算輸入字符串中出現(xiàn) “dog” 一詞的次數(shù)。
您可以看到,此示例使用字邊界來確保字母 "d" "o" "g" 不僅僅是長(zhǎng)字詞中的子字符串。在輸入字符串中發(fā)生匹配的地方,
它還提供了一些有用的信息。該 start 方法返回給定組在先前匹配操作中捕獲的子序列的開始索引,并 end 返回匹配的最后一個(gè)字符的索引。
# 使用 matches 和 lookingAt 方法
matches 和 lookingAt 方法都嘗試將輸入序列與模式進(jìn)行匹配。然而,差異在于,matches 要求整個(gè)輸入序列匹配,
lookingAt 而不需要。兩種方法始終從輸入字符串的開頭開始。下面是示例
# 使用 replaceFirst(String) and replaceAll(String)
在 replaceFirst 與 replaceAll 方法替換給定的正則表達(dá)式匹配的文本。按照他們的名字顯示,replaceFirst 替換第一次出現(xiàn),replaceAll 替換所有的事件。
在第一個(gè)版本中,所有出現(xiàn)的代碼 dog 都被替換 cat。但為什么要停在這里?而不是替換一個(gè)簡(jiǎn)單的文字 dog,
您可以替換匹配任何正則表達(dá)式的文本。該方法的 API 指出,“給定正則表達(dá)式 a*b,輸入aabfooaabfooabfoob 和替換字符串 -,
在該表達(dá)式的匹配器上調(diào)用此方法將產(chǎn)生字符串 -foo-foo-foo-。
鞏固下量詞的知識(shí):a*b 表示 ab 或則 b 都符合條件,但是是貪婪量詞,會(huì)出現(xiàn)長(zhǎng)度零匹配的結(jié)果。所以就出現(xiàn)了上面的輸出效果
# 使用 appendReplacement(StringBuffer,String) and appendTail(StringBuffer)
Matcher 類還提供 appendReplacement 和 appendTail 文本替換方法。使用這兩種方法來實(shí)現(xiàn)與之相同效果的 replaceAll
# 與 java.lang.String 等效的方法
為了方便起見,String 該類也模仿了幾種 Matcher 方法: public String replaceFirst(String regex, String replacement):用給定的替換替換與給定正則表達(dá)式匹配的此字符串的第一個(gè)子字符串。這種形式的這種方法的調(diào)用產(chǎn)生與表達(dá)式完全相同的結(jié)果 str.replaceFirst(regex, repl) 和 Pattern.compile(regex).matcher(str).replaceFirst(repl)
public String replaceAll(String regex, String replacement):用給定的替換替換與給定正則表達(dá)式匹配的此字符串的每個(gè)子字符串。這種形式的這種方法的調(diào)用產(chǎn)生與表達(dá)式完全相同的結(jié)果 str.replaceAll(regex, repl) 和 Pattern.compile(regex).matcher(str).replaceAll(repl)
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的java的matcher方法,Matcher 的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 会产生php7内存泄露,为什么 PHP
- 下一篇: iis php配置内部错误,iis 50