亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

詳解c正則表達式應用 c正則表達式提取字符串( 二 )


很簡單,你只需要在方括號里列出它們就行了,像 [aeiou] 就匹配任何一個英文元音字母,[.?!] 匹配標點符號( . 或 ? 或 !) 。
我們也可以輕松地指定一個字符范圍,像 [0-9] 代表的含意與 d 就是完全一致的:一位數(shù)字;同理 [a-z0-9A-Z_] 也完全等同于 w (如果只考慮英文的話) 。
下面是一個更復雜的表達式:(?0d{2}[) -]?d{8} 。
這個表達式可以匹配幾種格式的電話號碼,像 011-22884499,或 0845652452 等 。我們對它進行一些分析吧:首先是一個轉義字符 (,它能出現(xiàn) 0 次或 1 次 (?),然后是一個 0,后面跟著 2 個數(shù)字 (d{2}),然后是)或-或空格中的一個,它出現(xiàn) 1 次或不出現(xiàn)(?),最后是 8 個數(shù)字(d{8}) 。
7、反義有時需要查找不屬于某個能簡單定義的字符類的字符 。比如想查找除了數(shù)字以外,其它任意字符都行的情況,這時需要用到反義
例子:
S+ 匹配不包含空白符的字符串 。<a[^>]+> 匹配用尖括號括起來的以 a 開頭的字符串
8、分組我們已經提到了怎么重復單個字符(直接在字符后面加上限定符就行了);但如果想要重復多個字符又該怎么辦?可以用小括號來指定子表達式(也叫做分組),然后就可以指定這個子表達式的重復次數(shù)了,也可以對子表達式進行其它一些操作 。
(d{1,3}.){3}d{1,3} 是一個簡單的 IP 地址匹配表達式 。要理解這個表達式,請按下列順序分析它:d{1,3} 匹配 1 到 3 位的數(shù)字,(d{1,3}.){3} 匹配三位數(shù)字加上一個英文句號(這個整體也就是這個分組)重復 3 次,最后再加上一個一到三位的數(shù)字(d{1,3}) 。
可是也將匹配256.300.777.888這種不可能存在的 IP 地址 。如果能使用算術比較的話,或許能簡單地解決這個問題,但是正則表達式中并不提供關于數(shù)學的任何功能,所以只能使用冗長的分組,選擇,字符類來描述一個正確的 IP 地址:((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?) 。
理解這個表達式的關鍵是理解2[0-4]d|25[0-5]|[01]?dd?,這里就不細說了,大家應該能分析得出來它的意義 。
9、貪婪與懶惰當正則表達式中包含能接受重復的限定符時,通常的行為是匹配盡可能多的字符 。以這個表達式為例: b.*c,它將會匹配最長的以 b 開始,以 c 結束的字符串 。如果用它來搜索 babac 的話,它會匹配整個字符串 babac。這被稱為貪婪匹配 。
有時,我們更需要懶惰匹配,也就是匹配盡可能少的字符 。前面給出的限定符都可以被轉化為懶惰匹配模式,只要在它后面加上一個問號 ?。這樣 .*? 就意味著匹配任意數(shù)量的重復,但是在能使整個匹配成功的前提下使用最少的重復 ?,F(xiàn)在看看懶惰版的例子吧:
a.*?b 匹配最短的,以 a 開始,以 b 結束的字符串 。如果把它應用于 aabab 的話,它會匹配 aab(第一到第三個字符)和 ab( 第四到第五個字符) 。
10、處理選項上面介紹了幾個選項如忽略大小寫,處理多行等,這些選項能用來改變處理正則表達式的方式 。下面是 .Net 中常用的正則表達式選項:
一個經常被問到的問題是:是不是只能同時使用多行模式和單行模式中的一種?
答案是:不是 。這兩個選項之間沒有任何關系,除了它們的名字比較相似(以至于讓人感到疑惑)以外 。
11、提示正則表達式內容還有很多,筆者這里只列舉常用部分,讀者若想進一步學習,可在微軟專業(yè)正則表達式學習網站學習:
正則表達式語法支持情況如下圖:


以上關于本文的內容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫(yī)或請專業(yè)人士給予相關指導!

「愛刨根生活網」www.malaban59.cn小編還為您精選了以下內容,希望對您有所幫助: