999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

羅恒洋 張林

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

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

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

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

1背景

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

2正則表達式元字符

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

2.1正則表達式支持的字符

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

表1所列的是可以在正則表達式中使用的常規字符,利用常規字符也可以定義正則表達式,如”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})說明了正則表達式引擎在執行模式匹配時的工作模式。Java語言中支持三種工作模式,第一貪婪模式(Greedv),重復元字符默認工作模式,貪婪模式的表達式會一直匹配下去,直到無法匹配為止。第二非貪婪模式(Reluctant)又稱勉強模式,用問號后綴(?)表示,它只匹配最少的字符,也稱為最小匹配模式。第三占有模式(Possessive),用加號后綴(+)表示,目前只有Java語言支持該模式,通常比較少用。

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

3正則表達式的應用

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

3.1Pattern和Marcher類

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

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

4結束語

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

猜你喜歡
模式文本
初中群文閱讀的文本選擇及組織
甘肅教育(2020年8期)2020-06-11 06:10:02
在808DA上文本顯示的改善
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
淺議信息化管理對會計的影響
珠三角西岸精密制造產業新城規劃及公共服務平臺構建
高端飯店業產學研模式研究
永續債券探析
中國市場(2016年33期)2016-10-18 13:05:21
思想政治理論課實踐教學研究述評
大學教育(2016年9期)2016-10-09 08:17:37
中學數學創造性教學的模式與策略研究
成才之路(2016年26期)2016-10-08 11:17:17
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學隱喻
主站蜘蛛池模板: 91香蕉国产亚洲一二三区| 54pao国产成人免费视频| 欧洲免费精品视频在线| 麻豆精品在线| 亚洲免费福利视频| 波多野结衣久久高清免费| 日韩精品一区二区三区中文无码| 黄色网站在线观看无码| 久久激情影院| 欧美国产日产一区二区| 亚洲人在线| 久久综合色播五月男人的天堂| 九九这里只有精品视频| 日韩精品专区免费无码aⅴ| 亚洲国产av无码综合原创国产| 亚洲三级色| 特级欧美视频aaaaaa| 精品国产女同疯狂摩擦2| 亚洲人成高清| 精品色综合| 中文字幕资源站| 美女无遮挡免费网站| 国产呦精品一区二区三区网站| 亚洲天堂啪啪| 欧美一级高清免费a| 久久综合九色综合97婷婷| 国产小视频a在线观看| Aⅴ无码专区在线观看| 青草视频久久| Aⅴ无码专区在线观看| 欧美日韩国产在线观看一区二区三区| 日韩无码视频网站| 亚洲三级电影在线播放| 亚洲中文字幕手机在线第一页| 欧美色视频在线| 国产精品无码AV中文| 色老头综合网| 国产精品原创不卡在线| 好紧好深好大乳无码中文字幕| 天天摸夜夜操| 日本高清免费不卡视频| 狠狠色综合网| 色妞永久免费视频| 欧美性久久久久| 中文字幕在线观看日本| 免费国产高清视频| 91在线无码精品秘九色APP| 婷婷综合亚洲| a在线观看免费| 日本五区在线不卡精品| 精品精品国产高清A毛片| 亚洲熟女中文字幕男人总站| 亚洲精品国产成人7777| 中文无码精品A∨在线观看不卡 | 国产白浆一区二区三区视频在线| 日韩亚洲综合在线| 久久免费看片| 天天色综合4| 波多野结衣视频网站| 欧美成人精品一级在线观看| 国产日产欧美精品| 国产成人超碰无码| 中文字幕人妻av一区二区| 欧美中文字幕一区二区三区| 热久久这里是精品6免费观看| 久久狠狠色噜噜狠狠狠狠97视色 | 亚洲色无码专线精品观看| 丁香亚洲综合五月天婷婷| 国产视频一区二区在线观看| 亚洲专区一区二区在线观看| 91丝袜在线观看| 91久久青青草原精品国产| 亚洲精品国产自在现线最新| 刘亦菲一区二区在线观看| 91成人在线免费视频| 国产不卡在线看| www.99在线观看| 国产福利免费视频| 国内精品九九久久久精品| 国产精品亚洲专区一区| 国产资源免费观看| 美女国内精品自产拍在线播放 |