java 正則表達(dá)式高級(jí)篇,介紹四種常用的處理方式:匹配、分割、替代、獲取,具體內(nèi)容如下
package test; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 正則表達(dá)式 * 正則表達(dá)式 的用法主要是4種方面的使用 * 匹配,分割,替換,獲取. * 用一些簡(jiǎn)單的符號(hào)來(lái)代表代碼的操作 * @author cyc * */ public class Rex { public static void main(String[] args) { //針對(duì)字符串處理 Rex reg = new Rex(); //校驗(yàn)qq的reg正則表達(dá)式 //這里的w 是指的是[a-zA-Z0-9],還有一個(gè)重要的是?,*.+這三個(gè)分別 //?表示出現(xiàn)1次或者1次都沒(méi)有, //+表示出現(xiàn)1次或者n次, //*表示出現(xiàn)0次或者n次, //還有些特殊的寫(xiě)法X{n}恰好n次X{n,}至少n次,X{n,m}n次到m次, String mathReg = "[1-9]\d{4,19}"; String divisionReg = "(.)\1+"; //\b 是指的邊界值 String getStringReg = "\b\w{3}\b"; //字符串匹配(首位是除0 的字符串) reg.getMatch("739295732",mathReg); reg.getMatch("039295732",mathReg); //字符串的替換 //去除疊詞 reg.getReplace("12111123ASDASDAAADDD",divisionReg,"$1"); //字符串的分割 //切割疊詞,重復(fù)的 //這里要知道一個(gè)組的概念(.)\1第二個(gè)和第一個(gè)至相同 reg.getDivision("aadddddasdasdasaaaaaassssfq",divisionReg); //字符串的獲取 //現(xiàn)在獲取三個(gè)字符串取出 reg.getString("ming tian jiu yao fangjia le ",getStringReg); } /** * 獲取查詢的字符串 * 將匹配的字符串取出 */ private void getString(String str, String regx) { //1.將正在表達(dá)式封裝成對(duì)象Patten 類(lèi)來(lái)實(shí)現(xiàn) Pattern pattern = Pattern.compile(regx); //2.將字符串和正則表達(dá)式相關(guān)聯(lián) Matcher matcher = pattern.matcher(str); //3.String 對(duì)象中的matches 方法就是通過(guò)這個(gè)Matcher和pattern來(lái)實(shí)現(xiàn)的。 System.out.println(matcher.matches()); //查找符合規(guī)則的子串 while(matcher.find()){ //獲取 字符串 System.out.println(matcher.group()); //獲取的字符串的首位置和末位置 System.out.println(matcher.start()+"--"+matcher.end()); } } /** * 字符串的分割 */ private void getDivision(String str, String regx) { String [] dataStr = str.split(regx); for(String s:dataStr){ System.out.println("正則表達(dá)式分割++"+s); } } /** * 字符串的替換 */ private void getReplace(String str, String regx,String replaceStr) { String stri = str.replaceAll(regx,replaceStr) ; System.out.println("正則表達(dá)式替換"+stri); } /** * 字符串處理之匹配 * String類(lèi)中的match 方法 */ public void getMatch(String str, String regx){ System.out.println("正則表達(dá)匹配"+str.matches(regx)); } }
以上就是Java正則表達(dá)式的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助