正則表達在腳本編程中使用的非常多,正則表達式是一些特殊或不很特殊的字元串模式的集合.
基本元字符集及含義:
^ 只匹配行首
$ 只匹配行尾
* 一個字元後跟*,代表匹配0個或多個單字元
[] 匹配[]內的字元,可以是一個單字元,也可是字元序列,可以使用—表示字元序列內的範圍,例如:[1-5]可以代替[12345]
\ 可以屏蔽某些元字元的特殊含義,即\ 可以使有特殊含義的字元當成普通字元
. 匹配任意單字元
pattern\{n\} 匹配前面pattern出現的次數,n為次數
pattern\{n,\}m 同上,但是次數是最少為n
pattern\{n,m\} 同上,但是次數是在nm之間
注意,^$代表匹配空行
^.$代表配置只包含一個字元的行
\屏蔽特殊字元的特殊含義舉例:
假定匹配包含“.”的行,則要這樣寫:\.
假定匹配包含“^”的行,則:\^
假定匹配以*.pass結尾的文件,可以這麼寫:\*\.pass
[] 匹配[]內字元的使用舉例:
匹配任意數字,可以使用[0-9]來表示
匹配任意小寫字母,可以使用[a-z]
匹配任意字母,則使用[A-Za-z]表示
注意^的使用,當直接用在第一個括弧內表示否定或不匹配括弧里的內容
[^a-zA-Z]匹配任意非字母型字元
[^0-9]匹配任意非數字
常用正則表達舉例:
[^.*$] 匹配行中任意字元串
^......$ 匹配包含6個字元的行
[a-z][a-z]* 至少一個小寫字母
[^0-9\$] 非數字或美元符
[^0-9A-Za-z] 非數字或字母
[123] 1到3中的任意一個數
De..ce 前兩個字元是De後面跟兩個任意字元,最后為ce
\^q 以q開始的行
^.$ 只有一個字元的行
^.[0-9][0-9] 以一個.和兩個數字開頭的行
[0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\} 日期格式為dd-mm-yyyy
[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}.[0-9]\{3\} ip地址格式nnn.nnn.nnn.nnn
[^.*$] 匹配任意行
本文出自 「大漠雪狼」 博客,請務必保留此出處http://damoxuelangi.blog.51cto.com/3706076/845936
[火星人 ] 正則表達式筆記已經有386次圍觀