java學習筆記——Regex

來源:互聯網
上載者:User

標籤:

NO 方法名稱 類型 描述
1 public boolean matches(String regex) 普通 正則驗證使用
2

public String replaceAll(String regex,String replacement)

普通  全部替換
3

public String replaceFirst(String regex,String replacement)

普通 替換首個
4 public String[] split(String regex) 普通 全部拆分
5

public String[] split(String regex,int limit)

普通 部分拆分

 

 

 

 

 

 

 

 

 

正則符號(所有的正則匹配符號否在Java.util.regex.Pattern;中提供):

1.表示單個字元(每出現一個表示一位):

  • x:表示由x組成;
  • \\:表示轉移字元"\"
  • \t:表示定位字元,\n表示換行

2.表示字元的選用範圍(每出現一個表示一位):

  • [abc]:表示可能是a b c 中的任意一個(注意:只能匹配一個字元);
  • 1 public class demo1 {2 3     public static void main(String[] args) {4         // TODO Auto-generated method stub5         String str="a";6         System.out.println(str.matches("[abc]"));7     }8 9 }
    View Code
  • public class demo1 {    public static void main(String[] args) {        // TODO Auto-generated method stub        String str="ab";        System.out.println(str.matches("[abc][abc]"));    }}
    View Code
  • [^abc]:表示 任何字元,除了 a、b 或 c(否定)

  • [a-zA-Z]:a 到 z 或 A 到 Z,兩頭的字母包括在內(範圍)

  • [0-9]:

3.簡化運算式(每出現一個表示一位):

  • .:表示任意一位字元;
  • \d:表示任意一位元字,相當於[0--9];
  •     public static void main(String[] args) {        // TODO Auto-generated method stub        String str="2";        System.out.println(str.matches("\\d"));    }}
    View Code
  • \D:表示不是一個數字,相當於[^0--9];
  • \s:表示任意一位空格;
  • public class demo1 {    public static void main(String[] args) {        // TODO Auto-generated method stub        String str="\t";        System.out.println(str.matches("\\s"));    }}
    View Code
  • \S:表示不是任意的一位空格;
  • \w:表示字母(包括大寫或小寫)  數字 底線中的任意一位;

4.邊界匹配:

  • ^:寫在正則之前,表示正則開始;
  • $:寫在正則最後,表示正則結束;

5.數字規範:

  • ?:表示正則規範只能出現0次或者1次;
  • public class demo1 {    public static void main(String[] args) {        // TODO Auto-generated method stub        String str="";        System.out.println(str.matches("\\d?"));        String str1="22";        System.out.println(str1.matches("\\d?"));    }}
    View Code
  • *:表示出現0次 1次 或者多次;
  • +:表示正則出現1次  或者多次;
  • {n}:表示此正則正好出現n次;
  • {n,}:表示此正則出現n次及n次以上;
  • {n,m}:表示此正則出現n~m次;

6.邏輯運算式:

  • 正則X正則Y:執行正則X後執行正則Y;
  • X|Y:滿足正則X或者正則Y其中一個即可;
  • (正則):表示多個正則成為一組;

7.通過String類操作字元:

  • 如:只保留字母
  • 1 public class demo1 {2     public static void main(String[] args) {3         // TODO Auto-generated method stub4         String str="afajhj2313535{}]gaj>?‘;f‘afag;lag";5         String regex="[^a-zA-Z]";6         System.out.println(str.replaceAll(regex, ""));7     }8 }
    View Code
  • 替換(利用split()函數)
  • public class demo1 {    public static void main(String[] args) {        // TODO Auto-generated method stub        String str="a1b22c333d4444e55555f666666g";        String regex="\\d+";        String [] res=str.split(regex);        for(int i=0;i<res.length;i++)            System.out.println(res[i]);    }}
    View Code
  • 使用者名稱有字母 數字 底線表示並且有6~15個字元;
  • public class demo1 {    public static void main(String[] args) {        // TODO Auto-generated method stub        String str="wangxiang_123*";        String regex="\\w{6,15}";        System.out.println(str.matches(regex));        String regex1="(\\d|[a-zA-Z]|_|\\*){6,15}";        System.out.println(str.matches(regex1));    }}
    View Code
  • 現在某學校的學產生績那照"姓名:年齡:生日:成績"格式,這樣的資料可以出現多次並以|分隔, 如:ALLEN:19:1993-05-02:98.6|JUDY:21:2000-09-02:78|SARA:20:1994-08-21:97.5
  • 下面對各個判斷進行拆分:
    • 名字:
    • String str="zhansan";String regex="[a-zA-Z]+";

       

    • 年齡:
    • String str="19";String regex="\\d{1,3}";

       

    • 生日:
    • String str="1993-09-02";String regex="\\d{4}-\\d{2}-\\d{2}";

       

    • 成績:
    • String str="98.98";String regex="\\d{1,3}(\\.\\d{1,2})?";

       

    • 單個學生格式綜合:
    • String str="ALLEN:19:1993-05-02:98.6";String regex="[a-zA-Z]+:\\d{1,3}:\\d{4}-\\d{2}-\\d{2}:\\d{1,3}(\\.\\d{1,2})?";

       

    • 整個判斷:
    • public class demo1 {    public static void main(String[] args) {        // TODO Auto-generated method stub        String str="ALLEN:19:1993-05-02:98.6|JUDY:21:2000-09-02:78|SARA:20:1994-08-21:97.5";        String regex="([a-zA-Z]+:\\d{1,3}:\\d{4}-\\d{2}-\\d{2}:\\d{1,3}(\\.\\d{1,2})?\\|?)+";        System.out.println(str.matches(regex));    }}

       

java學習筆記——Regex

聯繫我們

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