java中正則表達(dá)式基本用法怎么用

java中正則表達(dá)式基本用法的使用:1、【Test01.java】使用正則表達(dá)式使代碼變得非常簡潔;2、【TestMatcher01.java】Matcher類的使用,用于字符串的驗(yàn)證。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站建設(shè)、綿竹網(wǎng)絡(luò)推廣、微信小程序開發(fā)、綿竹網(wǎng)絡(luò)營銷、綿竹企業(yè)策劃、綿竹品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供綿竹建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:muchs.cn

【相關(guān)學(xué)習(xí)推薦:java基礎(chǔ)教程】

正則表達(dá)式是一種可以用于模式匹配和替換的規(guī)范,一個(gè)正則表達(dá)式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)組成的文字模式,它用以描述在查找文字主體時(shí)待匹配的一個(gè)或多個(gè)字符串。正則表達(dá)式作為一個(gè)模板,將某個(gè)字符模式與所搜索的字符串進(jìn)行匹配。

眾所周知,在程序開發(fā)中,難免會(huì)遇到需要匹配、查找、替換、判斷字符串的情況發(fā)生,而這些情況有時(shí)又比較復(fù)雜,如果用純編碼方式解決,往往會(huì)浪費(fèi)程序員的時(shí)間及精力。因此,學(xué)習(xí)及使用正則表達(dá)式,便成了解決這一矛盾的主要手段。

大家都知道,正則表達(dá)式是一種可以用于模式匹配和替換的規(guī)范,一個(gè)正則表達(dá)式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)組成的文字模式,它 用以描述在查找文字主體時(shí)待匹配的一個(gè)或多個(gè)字符串。正則表達(dá)式作為一個(gè)模板,將某個(gè)字符模式與所搜索的字符串進(jìn)行匹配。

自從jdk1.4推出java.util.regex包,就為我們提供了很好的JAVA正則表達(dá)式應(yīng)用平臺(tái)。

因?yàn)檎齽t表達(dá)式是一個(gè)很龐雜的體系,所以我僅例舉些入門的概念,更多的請參閱相關(guān)書籍及自行摸索。

*下面是java中正則表達(dá)式常用的語法:

1、字符的取值范圍

[abc] : 表示可能是a,可能是b,也可能是c。

[^abc]: 表示不是a,b,c中的任意一個(gè)

[a-zA-Z]: 表示是英文字母

[0-9]:表示是數(shù)字

2、簡潔的字符表示

.:匹配任意的字符

\\d:表示數(shù)字

\\D:表示非數(shù)字

\\s:表示由空字符組成,[ \\t\\n\\r\\x\\f]

\\S:表示由非空字符組成,[^\\s]

\\w:表示字母、數(shù)字、下劃線,[a-zA-Z0-9_]

\\W:表示不是由字母、數(shù)字、下劃線組成

3、數(shù)量表達(dá)式

?: 表示出現(xiàn)0次或1次

+: 表示出現(xiàn)1次或多次

*: 表示出現(xiàn)0次、1次或多次

{n}:表示出現(xiàn)n次

{n,m}:表示出現(xiàn)n~m次

{n,}:表示出現(xiàn)n次或n次以上

4、邏輯表達(dá)式

XY: 表示X后面跟著Y,這里X和Y分別是正則表達(dá)式的一部分

X|Y:表示X或Y,比如"food|f"匹配的是foo(d或f),而"(food)|f"匹配的是food或f

(X):子表達(dá)式,將X看做是一個(gè)整體

5、java中提供了兩個(gè)類來支持正則表達(dá)式的操作

分別是java.util.regex下的Pattern類和Matcher類

使用Pattern類進(jìn)行字符串的拆分,使用的方法是String[] split(CharSequence input)

使用Matcher類進(jìn)行字符串的驗(yàn)證和替換,

匹配使用的方法是boolean matches()

替換使用的方法是 String replaceAll(String replacement)

6、Pattern類的構(gòu)造方法是私有的

所以我們使用Pattern p = Pattern.compile("a*b");進(jìn)行實(shí)例化

Matcher類的實(shí)例化依賴Pattern類的對象Matcher m = p.matcher("aaaaab");

7、在實(shí)際的開發(fā)中,為了方便我們很少直接使用Pattern類或Matcher類,而是使用String類下的方法

驗(yàn)證:boolean matches(String regex)

拆分: String[] split(String regex)

替換: String replaceAll(String regex, String replacement)

下面是正則表達(dá)式的簡單使用:

1、Test01.java :使用正則表達(dá)式使代碼變得非常簡潔。

package test_regex;
 public class Test01 {
     public static void main(String[] args){
         String str = "1234567";
//        char[] c = str.toCharArray();
//        boolean b = true;
 //        for(char c1:c){
 //            if(!(c1>='0'&&c1<='9')){
 //                b = false;
 //                break;
//            }
 //        }
 //        System.out.println(b);
       String regex = "\\\\d+";
        System.out.println(str.matches(regex));
     }
 }

2、TestMatcher01.java(Matcher類的使用,用于字符串的驗(yàn)證)

package test_regex;
 import java.util.regex.Pattern;
 import java.util.regex.Matcher;
 public class TestMatcher01 {
    public static void main(String[] args){
        String str = "1234567abc";
       String regex = "\\\\w{10,}";
//        Pattern pat = Pattern.compile(regex);
 //        Matcher mat = pat.matcher(str);
 //        System.out.println(mat.matches());
         System.out.println(str.matches(regex));
     }
 }

3、TestMatcher02.java(Matcher類的使用,用于字符串的替換)

package test_regex;
 import java.util.regex.Pattern;
 import java.util.regex.Matcher;
 public class TestMatcher02 {
    public static void main(String[] args){
       String str = "12Y34h56dAd7";
     String regex = "[a-zA-Z]+";
//        Pattern pat = Pattern.compile(regex);
//        Matcher mat = pat.matcher(str);
 //        System.out.println(mat.replaceAll(":"));
        System.out.println(str.replaceAll(regex,"-"));
   }
 }

4、TestPattern01.java(Pattern類的使用,用于字符串的拆分)

package test_regex;
 import java.util.regex.Pattern;
public class TestPattern01 {
     public static void main(String[] args){
        String str = "Tom:30|Jerry:20|Bob:25";
        String regex = "\\\\|";
//        Pattern pat = Pattern.compile(regex);
 //        String[] arr = pat.split(str);
        String[] arr = str.split(regex);
        for(String s:arr){
          System.out.println(s);
    }
   }
}

5、TestRegex01.java(大概判斷一個(gè)郵箱地址是否合法)

package test_regex;
public class TestRegex01 {
   //判斷一個(gè)郵箱地址是否合法
    public static void main(String[] args){
     //這里默認(rèn)郵箱的后綴是.com或.net.cn
     String str = "aa@aa.net.cn";
      String regex = "\\\\w+@\\\\w+\\\\.(com|net.cn)";
      System.out.println(str.matches(regex));
 }
}

相關(guān)學(xué)習(xí)推薦:編程視頻

分享題目:java中正則表達(dá)式基本用法怎么用
文章起源:http://muchs.cn/article14/checde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站建設(shè)、建站公司服務(wù)器托管、微信小程序、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司