亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Java中的正則表達式與模式匹配研究

        2011-01-09 06:26:58武興睿
        科技傳播 2011年15期
        關鍵詞:模式匹配字符串舉例

        武興睿

        吉林科技職業(yè)技術(shù)學院計算機系,吉林長春 130123

        Java中的正則表達式與模式匹配研究

        武興睿

        吉林科技職業(yè)技術(shù)學院計算機系,吉林長春 130123

        正則表達式是代表具有特殊意義字符的字符串。在信息時代,我們從海量數(shù)據(jù)中尋找特定的信息時,正則表達式起到了至關重要的作用。正則表達式仿佛一個模板,將某個字符模式與所搜索的字符串進行匹配。在編寫程序時正則表達式也起著很重要的作用,應用廣泛。本文主要研究java中正則表達式的使用,及模式匹配。

        正則表達式;模式匹配;Pattern類;Matcher類

        正則表達式仿佛一個模板,將某個字符模式與所搜索的字符串進行匹配。在編寫程序時正則表達式也起著很重要的作用,應用廣泛。本文主要研究java中正則表達式的使用,及模式匹配。

        1 java中的Pattern類

        1.1 重要方法

        1)static Pattern compile(String regex)

        該靜態(tài)方法通過使用類名調(diào)用,返回一個Pattern類型的對象,并且將給定的正則表達式regex編譯到模式中。

        舉例 1 :Pattern p ;p=Pattern.compile(“\dabcd\d”);

        2)Matcher matcher(CharSequence input)

        使用Pattern類的對象調(diào)用該方法,返回一個Matcher類型的對象,其主要作用是用在input中待匹配的字符序列初始化匹配對象。

        舉例 2 :Matcher m;m=p.matcher(“aaa1abcd2bbb”);

        3)static Boolean matches(String regex,CharSequence input)

        使用類名調(diào)用該方法,判斷input是否與regex正則表達式匹配。

        舉例3:Pattern.matches(“\dabcd\d”, “aaa1abcd2bbb”);

        //結(jié)果返回 true。

        4)String pattern()

        用對象調(diào)用,返回在其中編譯過此模式的正則表達式。

        舉例 4 :Pattern p = Pattern.compile(“\dabcd\d”);

        p.pattern();

        //結(jié)果返回字符串“\dabcd\d”。

        5)String[] split(CharSequence input);

        用對象調(diào)用該方法,返回一個字符串數(shù)組,數(shù)組中的每個元素都是input中被該模式對象拆分的字符串。

        舉例 5:Pattern p = Pattern.compile(“:”);

        String arry[]=p.split(“a:bcd:ef”);

        //結(jié)果 :arry[0]=”a”,arry[1]=”bcd”,arry[2]=”ef”。

        2 Matcher類

        主要方法:

        1)public boolean find()

        使用模式對象調(diào)用該方法,嘗試查找與該模式匹配的輸入序列的下一個子序列。若找到返回true,否則返回false。

        舉例 6 :Pattern p=Pattern.compile(“\dabcd\d”);

        Matcher m = p.matcher(“12abcd3fcsd);

        If(m.find()){System.out.print(“ok”);}

        //m調(diào)用find()方法,找到與之匹配的子序列“2abcd3”,程序?qū)⑤敵觥皁k”。

        說明:該方法始于匹配器區(qū)域的開頭,如果該方法的前一次調(diào)用成功,并且沒有重置,則下一次調(diào)用時從上次沒有匹配的第一個字符開始。例如在上例中下一次匹配時從字符“f“處向后查找。

        2)public boolean find(int start)

        使用模式對象調(diào)用該方法,該方法重置匹配器,嘗試查找匹配該模式、從指定索引start處開始的輸入序列的下一個子序列。

        舉例 7 :Pattern p=Pattern.compile(“\dabcd\d”);

        Matcher m = p.matcher(“12abcd3fcsd);

        If(m.find(3)){System.out.print(“ok”);}

        //程序結(jié)果沒有輸出“ok“。將從字符”b”處查找匹配的子序列。

        3)public int start()

        使用模式對象調(diào)用該方法,返回以前匹配的初始索引。

        4)public int end()

        使用模式對象調(diào)用該方法,返回最后匹配字符之后的偏移量。

        5)public String group()

        使用模式對象調(diào)用該方法,返回由以前匹配操作所匹配的輸入子序列。

        舉例 8 : Pattern p=Pattern.compile(“\dabcd\d”);

        Matcher m = p.matcher(“12abcd3fcsd);

        m.find();

        System.out.println(m.start+”---”+m.end()+”,”+m.group())

        //結(jié)果 1---6,2abcd3。

        6)public String replaceAll(String replacement)

        使用模式對象調(diào)用該方法,替換模式與給定替換字符串相匹配的輸入序列的每個子序列。

        舉例 9 :Pattern p=Pattern.compile(“\dabcd\d”);

        Matcher m = p.matcher(“12abcd3fcsd);

        System.out.print(m.replaceAll(“***”));

        //結(jié)果 :1***fcsd。

        7)public boolean matches()

        使用模式對象調(diào)用該方法,嘗試將整個字符串與模式匹配。若完全匹配返回true,否則返回false。

        舉例 10:Pattern p=Pattern.compile(“\dabcd\d”);

        Matcher m = p.matcher(“1abcd3);

        Matcher m1 = p.matcher(“2abcd33”);

        If(m.matches()) System.out.print(“ok”);

        If(m1.matches()) System.out.print(“ok111”);

        //程序結(jié)果輸出 “ok“。

        3 正則表達式的構(gòu)造

        1)代表單個字符的元字符

        元字符在正則表達式中的寫法 意義.“.” 代表任意一個字符d “\d” 代表0—9的任何一個數(shù)字D “\D” 代表任何一個非數(shù)字字符s “\s” 代表空格類字符:’ ’ ‘ ’ ‘x0B’ ‘f’ ‘ ’S “\S” 代表非空格類字符w “\w” 代表可用于標識符的字符(不包括美元符號)W “\W” 代表不能用于標識符的字符

        2)限定符模式

        帶限定符號的模式 意義 帶限定符號的模式 意義X? X出現(xiàn)0次或1次 X{n} X恰好出現(xiàn)n次X* X出現(xiàn)0次或多次 X{n,} X至少出現(xiàn)n次X+ X出現(xiàn)1次或多次 X{n,m} X出現(xiàn)n次至m次

        4 應用舉例

        1)Email正則表達式的書寫。

        Pattern emailer = Pattern.compile("\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");

        2)電話號碼正則表達式的書寫。

        Pattern tel = Pattern.compile("\d{3,4}-\d{7,8}|\d{11}");

        [1]java大學實用教程.清華大學出版社.

        [2]java 2 編程思想.

        TP301.2

        A

        1674-6708(2011)48-0180-02

        猜你喜歡
        模式匹配字符串舉例
        “舉例”寫人更具體
        三角函數(shù)求值題型舉例
        數(shù)學競賽中數(shù)列不等式的常見解法舉例
        基于模式匹配的計算機網(wǎng)絡入侵防御系統(tǒng)
        電子制作(2019年13期)2020-01-14 03:15:32
        具有間隙約束的模式匹配的研究進展
        移動信息(2018年1期)2018-12-28 18:22:52
        OIP-IOS運作與定價模式匹配的因素、機理、機制問題
        抽象函數(shù)應用舉例
        基于散列函數(shù)的模式匹配算法
        一種新的基于對稱性的字符串相似性處理算法
        依據(jù)字符串匹配的中文分詞模型研究
        国产在线美女| 伊人久久大香线蕉av不变影院| 亚洲av永久无码一区二区三区| 国产精品黄在线观看免费软件| 久久久99精品成人片中文字幕| 亚洲精品国产精品系列| 久久久精品人妻一区二区三区妖精 | 国产精品欧美成人| 亚洲综合五月天欧美| 免费人成黄页在线观看国产| 人妻熟妇乱又伦精品视频| 国产精品久久久久久久久免费| 亚洲AV无码一区二区二三区我| 日本女优中文字幕有码| 日本真人添下面视频免费| 又粗又硬又黄又爽的免费视频 | 精精国产xxxx视频在线播放器| 一卡二卡国产av熟女| 看久久久久久a级毛片| 两个人看的www高清视频中文| 成年视频网站在线观看777| 日本人妻系列中文字幕| 一区二区三区av波多野结衣| 手机看片久久国产免费| 亚洲一区二区三区品视频| 91精品国产综合久久熟女| 成人久久久久久久久久久| 日韩精品网| 国产精品夜色视频久久| 99在线精品视频在线观看| 中文字幕av在线一二三区| 亚洲国产精品夜男人天堂| 精品一区二区三区芒果| 亚洲国产长腿丝袜av天堂 | 超短裙老师在线观看一区| 狂猛欧美激情性xxxx大豆行情| 无码成人aaaaa毛片| 国产精品亚洲综合天堂夜夜| 日本系列有码字幕中文字幕| 三叶草欧洲码在线| 亚洲AV无码未成人网站久久精品|