Regex基礎及java使用

來源:互聯網
上載者:User

標籤:Regex   java   正則匹配   常用文法   匹配用法   


Regex基礎


Regex文法(1)
    一般字元:字母,數字,漢子,底線以及沒有特殊定義的標點符號都是“一般字元”。運算式中的一般字元,在匹配一個字串的時候,匹配與之相同的一個字元
  • 簡單的逸出字元:

    \n :代表分行符號

    \t :代表定位字元

    \\ :代表\本身

    \^ ......  :代表匹配這字元本身


Regex文法(2)

  • 標準字元集合:

    能夠與多種字元匹配的運算式

    注意區分大小寫,大寫是相反的意思

    \d :任意一個數字,0~9中的任意一個

    \w:任意一個字母或者底線或者漢字,也就是A~Z,a~z,0~9中的任意一個

    \s :包括空格,定位字元,分行符號等空白符中的任意一個。

    .   :小數點可以匹配任意一個字元


Regex文法(3)

  • 自訂字元集合:

    [ ]方括弧匹配方式,能夠匹配方括弧中任意一個字元

    [[email protected]]: 匹配方括弧中的任意一個字元

    [^abc]: 匹配除了abc以外的任意一個字元

    [f-k]: 匹配“f”-“k”之間的任意一個字元

    [^A-F0-3]: 匹配非A-F和非0-3的任意一個字元 


Regex文法(4)

  •     修飾匹配次數的特殊符號

    {n}: 運算式重複n次

    {m,n}: 運算式至少重複m次,最多重複n次

    {m,}: 運算式至少重複m次

    ?: 匹配運算式0次或者1次,相當於{0,1}

     + : 運算式至少出現1次,相當於{1,}

     *  : 運算式不出現或者出現任意次,相當於{0,}

     匹配次數中的貪婪模式,(匹配字元愈多愈好,預設)

     匹配次數中的非貪婪模式(匹配字元越少越好,修飾匹配次數的特殊符號後再加上一個“?“號)。例子:\d{2,4}?,這樣就將模式改為非貪婪


Regex文法(5)

  •     字元邊界(本組標記匹配的不是字元而是位置,符合某種條件的位置)

    ^: 與字串開始的位置匹配(以一行來算)

    $: 與字串結束的地方匹配

    \b: 匹配單詞邊界    //比如boy\b   則在boy右邊不是邊界的不匹配


在java中使用Regex及常用函數

public class TestRegex {public static void main(String []args){//Pattern p = Pattern.compile("^\\d{4}");  //在java中的反斜線要用兩個前面一個轉義,因為\d中的\做反義用Pattern p = Pattern.compile("(\\d{4})([a-z]{2})");Matcher m = p.matcher("asdfsadfsafd2342314asdfsadf2342asdfsaf");System.out.println(m.matches());//匹配整個目標字串System.out.println(m.find());//尋找字串List<String> list = new ArrayList<String>();//用來儲存找到的groupwhile(m.find())//m.find()找到一個後就去找下一個了{System.out.println(m.group());//group(),group(0)的作用是一樣的System.out.println(m.group(0));System.out.println(m.group(1));System.out.println(m.group(2));//如果寫3的話會超出範圍list.add(m.group());}String []str = "aa33fdf55cc".split("\\d{2}");//按照兩個整數來切分String str2 ="asd2dsfdfds".replaceAll("\\ds", "**");//將ds替換掉,產生新的字串,因為前面是常量不可變System.out.println("asdfsdf".matches("\\w+"));//匹配字串}}



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.