正則表達式袖珍手冊——通用正則表達式


通用正則表達式

譯者:張桂權

(出自《正則表達式袖珍手冊》一書。譯者,張桂權。可以從http://download.csdn.net/source/346896下載完整的譯稿)

       本節包含簡單的通用正則表達式模式。爲了滿足需要,你可能需要進行必要的調整。


這兒只給出了每一個表達式和它們匹配的目標字符串和不匹配的字符串。爲了滿足需要,你可能需要進行必要的調整。

採用Perl風格來書寫:

       /模式/形式

       s/模式/替換/形式

訣竅

 

去掉前導和末尾的空格

       s/^/s+//

       s//s+$//

匹配:  foo bar  “foo 

不匹配:“foo bar”

 

0999999之間的數字

       /^/d{1,6}$/

 

匹配:42678234

不匹配:10000 (帶分隔符的1萬)

 

驗證HTML十六進制編碼

       /^#([a-fA-F0-9]){3}(([a-fA-F0-9]){3})?$/

匹配#fff#1a1#996633

不匹配#ffFFFFFF

 

 

美國社會安全

       /^/d{3}-/d{2}-/d{4}$/

匹配:078-05-1120

不匹配:0780511201234-12-12

 

美國郵政編碼

       /^/d{5}(-/d{4})?$/

匹配:94941-323210024

不匹配:949413232

 

美國貨幣

       /^/$/(d{1,3}(/,/d{3})*|/d+)(/./d{2})?$/

匹配:$20$15,000.01

不匹配:$1.001$.99

 

匹配日期MM/DD/YYYY HH:MM:SS

       /^/d/d///d/d//d/d/d/d /d/d:/d/d:/d/d$/

匹配:04/03/1978 20:45:38

不匹配:4/03/1978 20:45:384/3/78

 

前導路徑名

       /^.*///

匹配:/usr/local/bin/apachectl

不匹配:c://System/foo.exe

(請參看 MRE 190-192

點分IP地址

       /^(/d|[01]?/d/d|2[0-4]/d|25[0-5])/

(/d|[01]?/d/d|2[0-4]/d|25[0-5])/

(/d|[01]?/d/d|2[0-4]/d|25[0-5])/

(/d|[01]?/d/d|2[0-4]/d|25[0-5])$/

匹配:127.0.0.1224.22.5.110

不匹配:127.1

(請參看 MRE 187-189

 

MAC地址

       /^([0-9a-fA-F]{2}:){5}[0-9a-fA-f]{2}$/

匹配01:23:45:67:89:ab

不匹配01:23:450123456789ab

 

Email

       /^[0-9a-zA-Z]([-./w]*[0-9ª-zA-Z_+])*@([0-9a-zA-Z][-/w]*

       [0-9a-zA]/.)+[a-zA-Z]{2,9}$/

匹配[email protected][email protected][email protected]

不匹配[email protected][email protected][email protected]

請參看 MRE 70

 

HTTP URL

       /(http?):/ / / /([0-9a-zA-Z][-/w]*[0-9a-zA-Z]/.)+

       [a-zA-Z]{2,9})

       (:/d{1,4})?([-/w//#~:.?+=&%@~]*)/

匹配https://example.comhttp://foo.com:8080/bar.html

不匹配ftp://foo.comftp://foo.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章