JAVA使用Regex

來源:互聯網
上載者:User

主要是搞清楚matches()/lookingAt ()/find()這三個方法的區別,以及會使用replaceAll() replaceFirst() appendReplacement()  appendTail() ,請看代碼

 

 

package test;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegTest {public static void main(String[] args){Pattern reg = Pattern.compile("(20\\d{2})-([01]\\d)-([0-3]\\d)");Matcher matcher = null;System.out.println(reg.pattern());matcher = reg.matcher("2012-02-25");//matches()方法嘗試對整個目標字元展開匹配檢測,是只有整個目標字串完全符合時才返回真值if (matcher.matches()){System.out.println("time:"+matcher.group(0));System.out.println("year:"+matcher.group(1));System.out.println("year:"+matcher.group(2));System.out.println("year:"+matcher.group(3));}Pattern reg2 = Pattern.compile("\\d*");System.out.println(reg2.pattern());matcher = reg2.matcher("2012abcd");//lookingAt()方法將檢測目標字串是否以匹配的子串起始if (matcher.lookingAt()){System.out.println("num:"+matcher.group());}Pattern reg3 = Pattern.compile("\\d+");System.out.println(reg3.pattern());matcher = reg3.matcher("asf2012abcd2011jdf2010jk");//find()方法嘗試在目標字串裡尋找下一個匹配子串while(matcher.find()){System.out.println("matcherStr:"+matcher.group());}//appendReplacement() 將當前匹配子串替換為指定字串,並且將替換後的子串以及其之前到上次匹配子串之後的字串段添加到一個StringBuffer對象裡Pattern reg4 = Pattern.compile("(hello|goodbye)");matcher = reg4.matcher("sayhelloandsaygoodbyeandsayhelloandsaysomething");StringBuffer sb = new StringBuffer();while (matcher.find()){System.out.println("matcherStr:"+matcher.group());matcher.appendReplacement(sb, "IT");System.out.println("sb:"+sb);}//appendTail() 方法則將最後一次匹配工作後剩餘的字串添加到一個StringBuffer對象裡//可以在一次或多次調用 appendReplacement 方法後調用它來複製剩餘的輸入序列matcher.appendTail(sb);System.out.println("sb:"+sb);}}

輸出結果如下:

(20\d{2})-([01]\d)-([0-3]\d)time:2012-02-25year:2012year:02year:25\d*num:2012\d+matcherStr:2012matcherStr:2011matcherStr:2010matcherStr:hellosb:sayITmatcherStr:goodbyesb:sayITandsayITmatcherStr:hellosb:sayITandsayITandsayITsb:sayITandsayITandsayITandsaysomething

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.