




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
正則表達式入門胡張東2014/7引言使用Everything查找關于正則表達式的ppt,但又不知道該ppt的具體名稱,可以使用通配符“*”,
*正則表達式*.ppt,這里的“*”表示了任意字符。引言正則表達式使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的文本。說簡單點,正則表達式就是在一堆有規律的字符中找到你想要的字符。正則測試工具推薦大家使用裝備軟件自帶的正則表達式測試工具,在DLL文件夾下的RegexTest.exe一個簡單例子在開發裝備軟件時要檢查ProductClass、SSID等,通常都是通過正則表達式在一堆字符中提取出ProductClass,然后和某一個固定的值比較。比如要在一堆字符串中找到ProductClassRG200O-CA,源字符串為:
ksdfjProductClasskdfjie:ldfiefRG200O-CAfiesdf,咋一看源字符串沒有一點規則可言,但是仔細觀查可以看到有ProductClass字符串可供定位,而且我們已知ProductClass格式為RG200O-CA,所以可以用正則表達式“.*ProductClass.*\:.*(\w{6}-\w{2}).*”來匹配?!?”表示匹配除換行符以外的任意字符,“*”表示前面的“.”匹配零次或更多次,“\”是轉義符號,表示后面的“:”就表示冒號,沒有其它含義,“\w”表示匹配字母或數字或下劃線或漢字,“{6}”表示匹配前面的“\w”6次,這個正則表達式輸出的結果為小括號里面的內容。一些術語元字符上一頁提到了兩個個元字符“\w”和“.”,元字符表示一類特殊的字符。接下來介紹一些其它常用的元字符,這些元字符必須要牢記!代碼說明.匹配除換行符以外的任意字符\w匹配字母或數字或下劃線或漢字\s匹配任意的空白符\d匹配數字\b匹配單詞的開始或結束^匹配字符串的開始$匹配字符串的結束限定符在前面的例子中使用了“*”和“{6}”限定匹配次數,還有一些其它用于限定匹配次數的。代碼/語法說明*重復零次或更多次+重復一次或更多次?重復零次或一次{n}重復n次{n,}重復n次或更多次{n,m}重復n到m次字符集如果想只匹配aeiou中的一個,使用[aeiou],[0-9]和\d代表的含義相同,同理[a-z0-9A-Z_]也完全等同于\w(如果只考慮英文的話),[.?!]匹配標點符號(.或?或!)正則表達式解釋\d{3}[fg]ood.+\w{3,6}\s{5,}[0-8]?\d\d*匹配0到9之間的數字3次匹配food或者good匹配除換行符外任意字符一次或更多次匹配字母或數字或下劃線或漢字3到6次匹配空格5次或者5次以上匹配0到8零次或者一次匹配0到9一次或者更多次分支條件在中國有一些特殊號碼,比如110,119,120,現在我們要匹配這三個號碼中的任意一個,可以使用正則表達式“110|120|119”,其中“|”是分支條件,使用“|”可以把不同的表達式分割,只要匹配到其中任意一個即可,匹配是從左到右匹配的,只要匹配到一個就不往下匹配了。眾所周知IP地址每一位都不能大于255,在寫匹配IP地址的正則表達式時,首先需要解決的是如何匹配0到255之間的數字!25[0-5]|2[0-4]\d|1\d{2}|\d\d?分組下面是一段Ping返回結果,要求用一個正則表達式取出最小時延、最大時延、平均時延,而且要兼容XP和Win7系統。Win7:最短=1ms,最長=2ms,平均=3msXP:Minimum=1ms,Maximum=2ms,Average=3ms正則表達式(Minimum|最短)\s+=\s+(\d+)ms,\s+(Maximum|最長)\s+=\s+(\d+)ms,\s+(Average|平均)\s+=\s+(\d+)ms每一個小括號括起來的都是一個分組,加上正則表達式本身就是第0個分組,所以共有7個分組Result[0]:Minimum=1ms,Maximum=2ms,Average=3msResult[1]:MinimumResult[2]:1Result[3]:MaximumResult[4]:2Result[5]:AverageResult[6]:3分組分組組號分配規則:從左向右,以分組的左括號為標志,第一個出現的分組的組號為1,第二個為2,以此類推。((25[0-5]|2[0-4]\d|1\d{2}|\d\d?)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|\d\d?)上面的正則表達式使用了“\.”匹配“.”,這里“\”起到了轉義的作用,依次類推,可以使用“\?”和“\*”匹配“?”和“*”一個合法的IPv4地址正則表達式反義有時需要查找不屬于某個能簡單定義的字符類的字符。比如想查找除了數字以外,其它任意字符都行的情況,這時需要用到反義代碼/語法說明\W匹配任意不是字母,數字,下劃線,漢字的字符\S匹配任意不是空白符的字符\D匹配任意非數字的字符\B匹配不是單詞開頭或結束的位置[^x]匹配除了x以外的任意字符[^aeiou]匹配除了aeiou這幾個字母以外的任意字符貪婪當正則表達式中包含能接受重復的限定符時,通常的行為是(在使整個表達式能得到匹配的前提下)匹配盡可能多的字符。以這個表達式為例:a.*b,它將會匹配最長的以a開始,以b結束的字符串。如果用它來搜索aabab的話,它會匹配整個字符串aabab,而不能匹配到aab,這被稱為貪婪匹配。寫出一個正則表達式匹配以a開始,以b結束的字符串a.*b正則表達式是貪婪的!a.*?b懶惰雖然正則是貪婪的,但有時我們更需要懶惰匹配,也就是匹配盡可能少的字符。前面給出的限定符都可以被轉化為懶惰匹配模式,只要在它后面加上一個問號?。這樣.*?就意味著匹配任意數量的重復,但是在能使整個匹配成功的前提下使用最少的重復?,F在看看懶惰版的例子吧:a.*?b匹配最短的,以a開始,以b結束的字符串。如果把它應用于aabab的話,它會匹配aab(第一到第三個字符)和ab(第四到第五個字符)。代碼/語法說明*?重復任意次,但盡可能少重復+?重復1次或更多次,但盡可能少重復??重復0次或1次,但盡可能少重復{n,m}?重復n到m次,但盡可能少重復{n,}?重復n次以上,但盡可能少重復一些例子聽到這可能已經被我繞暈了,如果你沒有暈而且還全部掌握了,那么我只能說我講的太生動了,接下來通過一些例子來鞏固下。匹配要求正則表達式格式為2014/4/24的日期\d{1,4}/(1[0-2]|0?[1-9])/(3[01]|[21]\d|0?[1-9])格式為XX:XX:XX:XX:XX:XX的MAC地址(([0-9a-fA-F]){4}\.){2}(([0-9a-fA-F]){4})格式為XXXX.XXXX.XXXX的MAC地址(([0-9a-fA-F]){2}\:){5}(([0-9a-fA-F]){2})格式為ChinaNet-XXXX的SSID,X采用0-9、a-z、A-ZChinaNet-([0-9a-zA-Z]){4}格式為HGU421Nv3的ProductClass
\w{7}\s\w{2}格式為Apr15201420:55:34的編譯時間
\w{3}\s*(3[01]|[21]\d|0?[1-9])\s*\d{4}\s*(2[0-4]|1\d|0?[1-9]):(60|[1-5]\d|0?[1-9]):(60|[1-5]\d|0?[1-9])正數、負數和小數
[+-]?\d+\.\d+以ing結尾的單詞\b(\w+)ing\b格式為huzhangdong@的姓名
(\w+)@零寬斷言在上一頁使用正則表達式\b(\w+)ing\b匹配以ing為結尾的單詞,如果源字符串是“reading”,那么匹配出來的結果有兩個分組,分組0代表整個表達式reading,分組1是小括號(\w+)里面的內容read,如果想分組0的結果為read該怎么辦?此時就需要用到零寬斷言了。什么是零寬斷言呢?正則表達式\b(\w+)(?=ing\b)匹配出來的結果是read,(?=ing)是零寬度正預測先行斷言,它斷言自身出現的位置的后面能匹配表達式ing,不包含ing。正則表達式(?<=read)(\w+)匹配出來的結果是ing,(?<=read)是零寬度正回顧后發斷言,它斷言自身出現的位置的前面能匹配表達式read,不包含read。負向零寬斷言匹配一個單詞,該單詞里面出現了a,但是a后面不是b。\b\w*a[^b]\w*\b上面的正則表達式\b\w*a(?!b)\w*\b使用了負向零寬斷言中的零寬度負預測先行斷言,正則表達式(?!b)即斷言此位置的后面不能匹配表達式bfaccbfaccb\b\w*a[^b]??\w*\bfaccbfa\b\w*a[^b]??
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 IEC 60530:1975/AMD2:2004 EN-D Amendment 2 - Methods for measuring the performance of electric kettles and jugs for household and similar use
- 【正版授權】 IEC 60304:1982 FR-D Standard colours for insulation for low-frequency cables and wires
- 新聞傳播學概論知識問答
- 印刷考試試題及答案
- 飲品培訓考試試題及答案
- 異地理論考試試題及答案
- 六一健身隊活動方案
- 醫學者考試試題及答案
- 六一夏威夷活動方案
- 六一寢室活動方案
- 低壓電工證考試試題及答案
- 2025年大學生學術研究洞察報告
- 2025年廣東中考化學模擬演練化學試卷B(含答案)
- 2025年全國二卷數學高考真題文字版
- 成都香城悅動置業有限公司招聘考試真題2024
- 2025年成都市初中學業水平考試道德與法治試題(含答案)
- 浙江省寧波2025年八年級下學期期末數學試題及答案
- T/CTRA 01-2020廢輪胎/橡膠再生油
- 可信數據空間解決方案星環科技
- 2025廣西專業技術人員公需科目培訓考試答案
- 2025年全國高考物理試題及答案
評論
0/150
提交評論