Java正規表示式提取字元的方法例項
正好遇到一個需求需要將字串中特定的字元全部提取出來,這個如果是按常規的字串處理的話非常的繁瑣。於是想到用正規表示式來完成。 專案需求是這樣的:需要提取車牌號中最後一個數字,比如說:蘇A7865提取5,蘇A876X提取6
實現方法:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String s = "A876X"; // 把要匹配的字串寫成正規表示式,然後要提取的字元使用括號括起來 // 在這裡,我們要提取最後一個數字,正則規則就是“一個數字加上大於等於0個非數字再加上結束符” Pattern pattern = Pattern.compile("(\\d)[^\\d]*$"); Matcher matcher = pattern.matcher(s); if(matcher.find()) System.out.println(matcher.group(1)); } }
關於Matcher 中的幾個方法說明:
Mathcer.start()/ Matcher.end()/ Matcher.group()
當使用matches(),lookingAt(),find()執行匹配操作後,就可以利用以上三個方法得到更詳細的資訊.
start()返回匹配到的子字串在字串中的索引位置.
end()返回匹配到的子字串的最後一個字元在字串中的索引位置.
group()返回匹配到的子字串
Java程式碼示例:
關於Matcher 中的幾個方法說明: Mathcer.start()/ Matcher.end()/ Matcher.group() 當使用matches(),lookingAt(),find()執行匹配操作後,就可以利用以上三個方法得到更詳細的資訊. start()返回匹配到的子字串在字串中的索引位置. end()返回匹配到的子字串的最後一個字元在字串中的索引位置. group()返回匹配到的子字串 Java程式碼示例:
說了這麼多,相信大家都明白了以上幾個方法的使用,該說說正規表示式的分組在java中是怎麼使用的.
start(),end(),group()均有一個過載方法它們是start(int i),end(int i),group(int i)專用於分組操作,Mathcer類還有一個groupCount()用於返回有多少組.
Java程式碼示例:
Pattern p=Pattern.compile(“([a-z]+)(\d+)”); Matcher m=p.matcher(“aaa2223bb”); m.find(); //匹配aaa2223 m.groupCount(); //返回2,因為有2組 m.start(1); //返回0 返回第一組匹配到的子字串在字串中的索引號 m.start(2); //返回3 m.end(1); //返回3 返回第一組匹配到的子字串的最後一個字元在字串中的索引位置. m.end(2); //返回7 m.group(1); //返回aaa,返回第一組匹配到的子字串 m.group(2); //返回2223,返回第二組匹配到的子字串
現在我們使用一下稍微高階點的正則匹配操作,例如有一段文字,裡面有很多數字,而且這些數字是分開的,我們現在要將文字中所有數字都取出來,利用java的正則操作是那麼的簡單.
Java程式碼示例:
Pattern p=Pattern.compile(“\d+”); Matcher m=p.matcher(“我的QQ是:456456 我的電話是:0532214 我的郵箱是:aaa123@aaa.com”); while(m.find()) { System.out.println(m.group()); }
輸出:
456456
0532214
123
如將以上while()迴圈替換成
while(m.find()) { System.out.println(m.group()); System.out.print(“start:”+m.start()); System.out.println(” end:”+m.end()); }
則輸出:
456456
start:6 end:12
0532214
start:19 end:26
123
start:36 end:39
現在大家應該知道,每次執行匹配操作後start(),end(),group()三個方法的值都會改變,改變成匹配到的子字串的資訊,以及它們的過載方法,也會改變成相應的資訊.
注意:只有當匹配操作成功,才可以使用start(),end(),group()三個方法,否則會丟擲java.lang.IllegalStateException,也就是當matches(),lookingAt(),find()其中任意一個方法返回true時,才可以使用。
以上內容給介紹了Java正規表示式提取字元的方法例項,希望對大家有所幫助。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015103/viewspace-2882656/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 正規表示式提取指定字元之間字串字元字串
- 利用正規表示式提取固定字元之間的字串字元字串
- 正規表示式 ^元字元字元
- 正規表示式 $ 元字元字元
- Java 正規表示式例項操作Java
- 正規表示式 字元和字元類字元
- 正規表示式元字元與普通字元字元
- 正規表示式 轉義字元字元
- 正規表示式 \d元字元字元
- 正規表示式 \t 元字元字元
- 正規表示式 \t元字元字元
- 正規表示式 \0元字元字元
- 正規表示式 \s 元字元字元
- 正規表示式 \xxx 元字元字元
- 正規表示式 \r 元字元字元
- 正規表示式 \n 元字元字元
- 正規表示式 \W元字元字元
- 正規表示式 \w 元字元字元
- 正規表示式 點(.)元字元字元
- 正規表示式 \xnn元字元字元
- 正規表示式 \b元字元字元
- 正規表示式 \D 元字元字元
- 正規表示式 \uxxxx 元字元UX字元
- 正規表示式 \v 元字元字元
- 正規表示式 \f 元字元字元
- 正規表示式 \B 元字元字元
- 提取超連結正規表示式
- 正規表示式中常用的元字元字元
- 正規表示式需要轉義的字元字元
- Sublime Text提取正規表示式匹配的文字
- 匹配空白字元正規表示式字元
- 正規表示式元字元大整理字元
- 正規表示式(java)Java
- java正規表示式Java
- 【java】正規表示式Java
- jmeter中提取token值(正規表示式,)JMeter
- Python正規表示式提取車牌號Python
- 正規表示式例項蒐集,通過例項來學習正規表示式。