Techyou labs
真正的爱应该超越生命的长度、心灵的宽度、 灵魂的深度
常用标签
您正在查看:标签 正则 下的文章
December 3, 2009

很早之前学习了正则,感觉只要试着去应用,上手还是很快的,但时间一长不用,很快就会记不准,这篇文章是在网上偶尔看到了,感觉写的通俗易懂,只是排版太差了,就转载下来,重新排版了一下,供自己温习正则表达式。
开篇,还是得说说 ^$ 他们是分别用来匹配字符串的开始和结束
,以下分别举例说明

"^The" //开头一定要有"The"字符串;
"of despair$" //结尾一定要有"of despair" 的字符串;

那么,

"^abc$" //就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配    
"notice" //匹配包含notice的字符串

你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说模式(正则表达式) 可以出现在被检验字符串的任何地方,你没有把他锁定到两边。

接着,说说 *+?

他们用来表示一个字符可以出现的次数或者顺序. 他们分别表示:

"zero or more" //相当于{0,},   
"one or more" //相当于{1,},   
"zero or one." //相当于{0,1},

这里是一些例子:

"ab*" //和ab{0,}同义,匹配以a开头,后面可以接0个或者N个b组成的字符串("a", "ab", "abbb", 等);   
"ab+" //和ab{1,}同义,同上条一样,但最少要有一个b存在 ("ab", "abbb", 等.);   
"ab?" //和ab{0,1}同义,可以没有或者只有一个b;   
"a?b+$" //匹配以一个或者0个a再加上一个以上的b结尾的字符串.

要点, '*', '+',和 '?'只管它前面那个字符.

你也可以在大括号里面限制字符出现的个数,比如

"ab{2}" //要求a后面一定要跟两个b(一个也不能少)("abb");   
"ab{2,}" //要求a后面一定要有两个或者两个以上b(如"abb", "abbbb", 等.);   
"ab{3,5}" //要求a后面可以有3-5个b("abbb", "abbbb", or "abbbbb").