这次我们来说说具体使用正则表达式。

例:^once 首先你使用了一个^字符,并且^字符的作用是匹配字符串的开始位置,故你能通过这个正则表达式找出所有以once开头的字符串:once xxxxxx等等。与符号^相对应的是$,$是用来匹配字符串的结束位置,所以如果你是$once,那么你能够找出所有以once结尾的字符串,如xxxxx once。当字符^和$同时使用时,表示精确匹配。也就是比如^once$那么就找出所有的once字符串,不能有其他的。

在INTERNET的程序中,正规表达式通常用来验证用户的输入。当用户提交一个FORM以后,要判断输入的电话号码、地址、EMAIL地址、信用卡号码等是否有效,用普通的基于字面的字符是不够的。

所以要用一种更自由的描述我们要的模式的办法,它就是字符簇。要建立一个表示所有元音字符的字符簇,就把所有的元音字符放在一个方括号里:

由前面我们可以知道,方括号[ ]表示的是字符的范围

[a-z] //匹配所有的小写字母 
[A-Z] //匹配所有的大写字母 
[a-zA-Z] //匹配所有的字母 
[0-9] //匹配所有的数字 
[0-9\.\-] //匹配所有的数字,句号和减号 (\.表示句号的转义字符,\-表示减号的转义字符)
[ \f\r\t\n] //匹配所有的白字符(\f代表了一个换页符 \r代表了一个回车符 \t代表了一个制表符 \n代表了一个换行符    前面几个符号的具体体现都是空白)
如:^[a-z][0-9]$,它代表了进行的是精准匹配一个由一个小写字母和一位数字组成的字符串,a1 v3 d4等等

前面曾经提到^表示字符串的开头,但它还有另外一个含义。当在一组方括号里使用^是,它表示"非"或"排除"的意思,常常用来剔除某个字符。
如:^[^0-9][0-9]$,它代表啦进行的是精准匹配第一个字符不能是数字,第二个字符是数字的字符串。这个模式与"&5"、"g7"及"-2"是匹配的,但与"12"、"66"是不匹配的。
下面这都是利用了^字符在[]字符内代表了排除意义的用法。
[^a-z] //除了小写字母以外的所有字符 [^\\\/\^] //除了(\)(/)(^)之外的所有字符 [^\"\'] //除了双引号(")和单引号(')之外的所有字符

前面我们介绍的都是对于单个字符匹配的做法,如果我们需要对于很多个字符的匹配问题,那么我们就需要跟在字符或字符簇后面的花括号({})用来确定前面的内容的重复出现的次数。
如:^a{4}&,这就是用来匹配以aaaa开头的字符串
^a{2,4}&,这就是用来匹配以aa,aaa和aaaa开头的字符串
^a{2,}&,这就是用来匹配以aa以及2个以上的a开头的字符串
^[0-9]{1,}$ //所有的正数 ([0-9]代表了匹配0-9中任意一个数字,{1,}代表了1个及以上。所以它就能够匹配所有的正数) ^\-{0,1}[0-9]{1,}$ //所有的整数 (\-代表了匹配负号,{0,1}代表了0个和1个,[0-9]代表了匹配0-9中任意一个数字,{1,}代表了1个及以上。所以它能够匹配所有的整数,正数和负数以及0) ^\-{0,1}[0-9]{0,}\.{0,1}[0-9]{0,}$ //所有的小数(\-代表了匹配负号,{0,1}代表了0个和1个,[0-9]代表了匹配0-9中任意一个数字,{0,}代表了0个及以上,\.代表了匹配小数点,{0,1}代表了0个和1个,[0-9]代表了匹配0-9中任意一个数字,{0,}代表了0个及以上。所以它能够匹配所有带小数点的数)
特殊字符"?"与{0,1}是相等的,它们都代表着:"0个或1个前面的内容"或"前面的内容是可选的"。
所以上面最后一个例子可以简化为:^\-?[0-9]{0,}\.?[0-9]{0,}$
特殊字符"*"与{0,}是相等的,它们都代表着"0个或多个前面的内容"。最后,字符"+"与 {1,}是相等的,表示"1个或多个前面的内容"
所以上面最后一个例子可以简化为:^\-?[0-9]*\.?[0-9]*$
特殊字符"\d"与[0-9]是相等的,它们的作用都是匹配一个数字字符
所以上面最后一个例子可以简化为:^\-?\d*\.?\d*