国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Java從零開始學(xué)三十二(正則表達(dá)式)

2019-11-14 23:05:34
字體:
供稿:網(wǎng)友
java從零開始學(xué)三十二(正則表達(dá)式)一、為什么要有正則正則表達(dá)式可以方便的對數(shù)據(jù)進(jìn)行匹配,可以執(zhí)行更加復(fù)雜的字符串驗(yàn)證、拆份、替換功能。例如:現(xiàn)在要求判斷一個(gè)字符串是否由數(shù)字組成,則可以有以下的兩種做法:不使用正則完成使用正則完成二、Pattern、Matcher類如果要想在程序中應(yīng)用正則表達(dá)式則必須依靠Pattern類與Matcher類,這兩個(gè)類都在java.util.regex包中定義。Pattern類的主要作用是進(jìn)行正則規(guī)范的編寫,而Matcher類主要是執(zhí)行規(guī)范,驗(yàn)證一個(gè)字符串是否符合其規(guī)范。常用正則規(guī)則
No.規(guī)范描述No.規(guī)范描述
1//表示反斜線(/)字符2/t表示制表符
3/n表示換行4[abc]字符a、b或c
5[^abc]除了a、b、c之外的任意字符6[a-zA-Z0-9]表示由字母、數(shù)字組成
7/d表示數(shù)字8/D表示非數(shù)字
9/w表示字母、數(shù)字、下劃線10/W表示非字母、數(shù)字、下劃線
11/s表示所有空白字符(換行、空格等)12/S表示所有非空白字符
13^行的開頭14$行的結(jié)尾
15.匹配除換行符之外的任意字符

   數(shù)量表示(X表示一組規(guī)范)
No.規(guī)范描述No.規(guī)范描述
1X必須出現(xiàn)一次2X?可以出現(xiàn)0次或1次
3X*可以出現(xiàn)0次、1次或多次4X+可以出現(xiàn)1次或多次
5X{n}必須出現(xiàn)n次6X{n,}必須出現(xiàn)n次以上
7X{n,m}必須出現(xiàn)n~m次

邏輯運(yùn)算符(X、Y表示一組規(guī)范)
No.規(guī)范描述No.規(guī)范描述
1XYX規(guī)范后跟著Y規(guī)范2X | YX規(guī)范或Y規(guī)范
3(X)做為一個(gè)捕獲組規(guī)范

Pattern類的常用方法
No.方法類型描述
1public static Pattern compile(String regex)普通指定正則表達(dá)式規(guī)則
2public Matcher matcher(CharSequence input)普通返回Matcher類實(shí)例
3public String[] split(CharSequence input)普通字符串拆分
在Pattern類中如果要想取得Pattern類實(shí)例,則必須調(diào)用compile()方法。Matcher類的常用方法
No.方法類型描述
1public boolean matches()普通執(zhí)行驗(yàn)證
2public String replaceAll(String replacement)普通字符串替換
如果要驗(yàn)證一個(gè)字符串是否符合規(guī)范,則可以使用Matcher類三、正則驗(yàn)證3.1、驗(yàn)證字符組成
package com.pb.demo2;import java.util.regex.Pattern;public class RegexDemo1 {    public static void main(String[] args) {        String str="1234567890"; //聲明字符串由數(shù)字組成        //使用正則驗(yàn)證        if(Pattern.compile("[0-9]+").matcher(str).matches()){            System.out.3.2、驗(yàn)證一字符串是否是合法日期格式

package com.pb.demo2;import java.util.regex.Matcher;import java.util.regex.Pattern;/* * 驗(yàn)證一字符串是否是合法日期格式 */public class RegexDemo2 {    public static void main(String[] args) {        String str="1983-07-23";        String pat="http://d{4}-//d{1,2}-//d{1,2}";   //定義規(guī)則        Pattern p=Pattern.compile(pat);      //實(shí)例化pattern類對象        Matcher m=p.matcher(str);                 //驗(yàn)證字符串內(nèi)容是否合法        //使用正則驗(yàn)證        if(m.matches()){            System.out.println("日期格式合法! !");        }else{            System.out.println("日期格式不合法! !");        }                    }}
3.3、按照字符串的數(shù)字將字符串拆分
package com.pb.demo2;import java.util.regex.Matcher;import java.util.regex.Pattern;/* * 按照字符串的數(shù)字將字符串拆分 */public class RegexDemo2 {    public static void main(String[] args) {    String str="A1B22C333D4444E55555F6G77";    String pat="http://d+";                         //定義拆分的規(guī)則    Pattern p=Pattern.compile(pat); //實(shí)例化Pattern類    String [] ss=p.split(str);                //拆分為字符串?dāng)?shù)組                    //遍歷        for (String s : ss) {            System.out.print(s+"/t");        }            }}

結(jié)果:

A    B    C    D    E    F    G    
3.4、替換操作
package com.pb.demo2;import java.util.regex.Matcher;import java.util.regex.Pattern;/* * 按照字符串的數(shù)字將字符串替換 */public class RegexDemo4 {    public static void main(String[] args) {    String str="A1B22C333D4444E55555F6G77";    String pat="http://d+";                         //定義替換的規(guī)則    Pattern p=Pattern.compile(pat); //實(shí)例化Pattern類    Matcher m=p.matcher(str);            //實(shí)例化Matcher類    String newStrirng=m.replaceAll("_");//替換的字符    System.out.println(newStrirng);            }}

結(jié)果:

A_B_C_D_E_F_G_
3.5、郵箱驗(yàn)證
package com.pb.demo2;import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;/* * 郵箱是否合法 */public class RegexDemo5 {    public static void main(String[] args) {    Scanner input=new Scanner(System.in);    //String pat="^[A-Za-z0-9_]+@[A-Za-z0-9_]+(.[A-Za-z_]{2,3}){1,2}$";    String regEx="^//w+@//w+(.[A-Za-z_]{2,3}){1,2}$";    System.out.println("輸入郵箱:");    String email=input.nextLine();    Pattern p=Pattern.compile(regEx);    Matcher m=p.matcher(email);    if(m.matches()){        System.out.println("郵箱合法!!");    }else{        System.out.println("郵箱不合法!!");    }            }}
四、String對正則表達(dá)式的支持在String類中有以下三個(gè)方法是支持正則操作
No.方法類型描述
1public boolean matches(String regex)普通字符串匹配
2public String replaceAll(String regex,String replacement)普通字符串替換
3public String[] split(String regex)普通字符串拆分


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临夏县| 郑州市| 沙田区| 沧源| 涟源市| 芦山县| 岳池县| 广德县| 临洮县| 新化县| 通道| 嵊泗县| 上饶县| 广东省| 南溪县| 神木县| 宁海县| 嘉善县| 新疆| 扎鲁特旗| 吉安县| 肇源县| 湘西| 博兴县| 晋中市| 洱源县| 上饶市| 黄平县| 大港区| 阜康市| 临澧县| 平湖市| 宝丰县| 泾阳县| 行唐县| 泗洪县| 成安县| 开平市| 海安县| 静海县| 封丘县|