正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/、*、?等)组成。

规则

. 点号只匹配任意单字符(不包含换行符)。
[] 只匹配[]内字符。可以是一个单字符,也可以是字符序列,用","将里面要匹配的不同字符串分开。也可以使用-来表示[]内字符序列的范围,如[1-5]表示[12345]
[0-9]       假定要匹配任意一个数字
[a-z]       任意一个小写字母
[A-Za-z]    任意一个大小写字母
[S,s]       匹配大小写S
[A-Za-z1-9] 任意一个英文字母或数字
\d          任意一个数字字符
\D          任意一个非数字字符[^0-9]
\w          任意一个字母数字下划线相当于:[A-Za-z1-9_]
\W          任意一个非字母数字下划线相当于:[^A-Za-z1-9_]
\s          任意一个空白符(空格,换页,换行,回车,制表)[\n\f\r\t]
\S          任意一个非空白符[^\n\f\r\t]

[^error]    匹配不在[]内的任意一个字符
^           只匹配行首。 如^a 匹配以a开头的行abc,a2e,a12,aaa,......
$           只匹配行尾。 如$a 匹配以a结尾的行bca,12a,aaa,.......
*           匹配0个或多个此单字符。 如(a)* 匹配 空,a,aa,aaa,....
\           只用来转义一个元字符的特殊含义。 如\*,\',\",\|,\+,\^,\. 等

pattern\{n\}:只用来匹配前面pattern出现的次数.n为次数。如a\{2\}匹配aa.
pattern\{n,\}:含义同上,但次数最少为n.如a\{2,\}匹配aa,aaa,aaaa,.....
pattern\{n,m\}:含义同上,但次数在n和m之间。如a\{2,4\}匹配aa,aaa,aaaa三个


示例

^$        匹配空行
^.$       匹配包含一个字符的行
\*\.pas   匹配以*.pas结尾的所有字符或文件
 
# 匹配IP地址 [0-9]\{3\}三个0-9组成的字符串
# \. 匹配点(注意这里点是特殊的字符,所以要用"\"来屏蔽其含义)
[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}