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

        ?

        Java中的正則表達式應用探討

        2019-01-06 02:19:13羅恒洋張林
        電腦知識與技術 2019年32期
        關鍵詞:字符串模式文本

        羅恒洋 張林

        摘要:隨著信息技術的高速發(fā)展,計算機面臨著大量的數據處理業(yè)務。文本字符串處理是一種經常性的業(yè)務,正則表達式在復雜字符串處理方面有著得天獨厚的優(yōu)勢。文章介紹了Java語言中的正則表達式處理方法,分析了復雜字符串的分割、查找、替換和提取特殊子串的方法,總結了構建正則表達式重要性。

        關鍵詞:文本;字符串;正則表達式;模式;Java

        中圖分類號:TP312 文獻標識碼:A

        文章編號:1009-3044(2019)32-0095-04

        1背景

        處理文本和數據是計算機經常要做的事情,諸如存儲在數據庫的數據、文本編輯處理、網上注冊、填報登記的信息、網站新聞列表等應用上都涉及大量處理文本和數據的操作。有時可能不知道需要處理的大量文本數據的具體內容,但是若把這些文本和數據以一種能讓計算機識別和處理的模式表現出來,再讓計算機分析和處理文本和數據就變得方便了,這就是正則表達式技術的運用,正則表達式的運用給計算機處理大量文本數據帶來快速和簡便的操作。

        2正則表達式元字符

        正則表達式(Regular Expressionl是由一些字符和特殊字符組成的字符串,這個字符串描述了字符和字符的重復排列方式,反映了字符重復排列的規(guī)律性,因此能夠按某種模式匹配一些有相似特征的字符串或字符串集合。運用正則表達式首先要理解正則表達式的元字符集提供的字符和特殊字符的含義。

        2.1正則表達式支持的字符

        正則表達式支持的合法字符如表1所示。

        表1所列的是可以在正則表達式中使用的常規(guī)字符,利用常規(guī)字符也可以定義正則表達式,如”abc\nabc”匹配”abc\nabc”,字符串自身匹配自身。Java語言中,java.util.regex包下有兩個重要的類:Pattern和Matcher,這兩個類提供了定義正則表達式和匹配目標字符串的主要操作。實際工作中,要用到Pattern中的matches方法,判斷某個正則表達式與目標字符串是否匹配。matches方法是Pattern類的一個類方法,方法的返回值是boolean型數據,該方法需要兩個參數,第一個參數是定義的正則表達式,即某種形式的模式,第二個參數是要匹配的目標字符串,當某個正則表達式與目標字符串匹配成功,方法返回true值,否則返回false,通常用matches方法測試定義的正則表達式能否匹配目標字符串。

        要構造靈活的正則表達式就要用到正則表達式的特殊字符、預定義字符、邊界匹配符和方括號、圓括號表達式。

        2.2正則表達式的特殊字符

        正則表達式的特殊字符如表2所示。

        2.5圓括號表達式

        當把多個字符當作一個獨立單元進行處理時,就要用到圓括號表達式了,即用圓括號把多個字符分成一個子組,結合管道運算符可以可以構造關鍵詞匹配正則表達式。

        “((public)I(protected)I(private))”用于匹配Java的三個訪問控制符之一。

        在正則表達式中用一對圓括號可以把正則表達式分組,每一個子組能夠保留下來做進一步的處理。假定要匹配的目標字符串中既含有英文字符又含有數字字符,可以使用正則表達式”(\\w+)-(\\d+)”來匹配,在Java中把目標字符串分成兩個子組,并且兩個子組匹配結果在Matcher類中以子組的形式保留下來,非常方便地進行下一步處理。而傳統的做法需要編寫兩段程序代碼,先從目標字符串中分離處英文字符并保存下來,再從目標字符串中分離出數字字符,做進一步處理,處理過程比使用圓括號運算符復雜得多。

        2.6數量標識符支持的模式

        特殊符號*、?、+用于匹配字符串模式出現一次、多次或未出現的情況,又稱作閉包運算符或量詞。*(星號)運算符匹配它左邊那個正則表達式出現0次或0次以上的情況。+(加號)運算符匹配它左邊那個正則表達式出現1次或多次的情況。?f問號)運算符匹配它左邊那個正則表達式出現0次或1次的情況。

        花括號{}運算符也是用來匹配其左邊正則表達式出現的情況,花括號內可以是一個值、一個值跟一個逗號或由逗號分隔的兩個值。fml表示匹配其左邊那個正則表達式m次出現,{m,}表示匹配其左邊那個正則表達式至少出現m次;{m,n}表示匹配其左邊那個正則表達式至少出現m次,最多出現n次。

        構建正則表達式時使用了表示重復的元字符(*、+、?、{m,n})說明了正則表達式引擎在執(zhí)行模式匹配時的工作模式。Java語言中支持三種工作模式,第一貪婪模式(Greedv),重復元字符默認工作模式,貪婪模式的表達式會一直匹配下去,直到無法匹配為止。第二非貪婪模式(Reluctant)又稱勉強模式,用問號后綴(?)表示,它只匹配最少的字符,也稱為最小匹配模式。第三占有模式(Possessive),用加號后綴(+)表示,目前只有Java語言支持該模式,通常比較少用。

        上面第一行使用貪婪模式匹配第一個出現的單詞,輸出結果x替換掉Hello,第二行使用非貪婪模式匹配,即匹配最少的字符,Hello,Java前的第0個字符替換成x。

        3正則表達式的應用

        正則表達式是一個強大的字符串處理工具,互聯網上的網頁文件其實質是一個龐大的字符串文件,利用正則表達式可以對字符串進行查找、提取、分割和替換等操作。

        3.1Pattern和Marcher類

        Pattern類和Matcher類位于iava.util.regex包內,兩者都是終極類,一旦在程序中定義了正則表達式,就可以用這兩個類的對象來使用正則表達式。Pattern對象用來保存編譯后的正則表達式,編譯后的正則表達式可以在程序中反復使用,提高程序執(zhí)行的效率,利用Pattern對象創(chuàng)建Matcher對象,執(zhí)行模式匹配所涉及的狀態(tài)保留在Matcher對象中,多個Matcher對象可以共享同一個Pattern對象。典型的調用順序如下:

        從字符串中提取特定子字符串,操作方法基本相同,只是所定義的正則表達式內容不同。

        4結束語

        正則表達式在大量文本字符處理上有著得天獨厚的技術優(yōu)勢,傳統的文本處理技術算法不僅復雜而且代碼臃腫,執(zhí)行效率也低。信息技術的高速發(fā)展促進處理大量文本數據的正則表達式技術的發(fā)展,很多計算機高級語言演化也是從不支持正則表達式技術轉化為支持正則表達式技術,并且不斷優(yōu)化正則表達式技術,Java語言就是這樣的一種語言,Java語言從1.4版以來就支持正則表達式技術,在目前見到的Java語言的各個版本中,都有著優(yōu)化和改進正則表達式功能的說明。正則表達式的關鍵是構建一個正則表達式模式,該模式能反映出文本字符串的排列特征,從而用該模式代表符合特征的大量具體的文本字符串,為進一步的處理提供便捷。

        猜你喜歡
        字符串模式文本
        在808DA上文本顯示的改善
        基于doc2vec和TF-IDF的相似文本識別
        電子制作(2018年18期)2018-11-14 01:48:06
        珠三角西岸精密制造產業(yè)新城規(guī)劃及公共服務平臺構建
        永續(xù)債券探析
        中國市場(2016年33期)2016-10-18 13:05:21
        思想政治理論課實踐教學研究述評
        大學教育(2016年9期)2016-10-09 08:17:37
        中學數學創(chuàng)造性教學的模式與策略研究
        成才之路(2016年26期)2016-10-08 11:17:17
        文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學隱喻
        一種新的基于對稱性的字符串相似性處理算法
        如何快速走進文本
        語文知識(2014年1期)2014-02-28 21:59:13
        依據字符串匹配的中文分詞模型研究
        人妻少妇中文字幕,久久精品| 揄拍成人国产精品视频| 亚洲色婷婷综合开心网| 美女性色av一区二区三区| 亚洲av无码成人精品国产| 黑人巨茎大战欧美白妇| 精品一区二区av天堂| 日本伦理美乳中文字幕| 国产精品亚洲av无人区一区香蕉| 帮老师解开蕾丝奶罩吸乳视频| 午夜高清福利| av天堂一区二区三区| 日本a级片免费网站观看| 国产特级毛片aaaaaaa高清| 人人妻人人狠人人爽| 久久人人97超碰超国产| 国产精品国产三级国产在线观| 中文字幕一区二区综合| 婷婷色香五月综合激激情| 男人扒开女人双腿猛进女人机机里| 新久久久高清黄色国产| 男女av免费视频网站| 国产av麻豆mag剧集| 中年人妻丰满AV无码久久不卡| 久久久一本精品久久久一本| 亚洲av片无码久久五月| 亚洲啪啪综合av一区| 精精国产xxxx视频在线播放器| 亚洲av午夜福利精品一区不卡| 精品国产免费一区二区三区| 18无码粉嫩小泬无套在线观看 | a在线观看免费网站大全| 亚洲国产精品久久久久婷婷软件| 久久综合另类激情人妖| 国产成人一区二区三区| 国产乱人伦av在线无码| 亚洲精品动漫免费二区| 久久久精品国产免费看| 又大又粗又爽18禁免费看| 亚洲成AⅤ人在线观看无码| 最新日本久久中文字幕|