建站软件 优化软件 编程软件 网页辅助 站群程序 网站程序 图像处理 资源教程 字体下载 推荐软件


您的位置:首页 > PHP学习 > 正则表达式入门

正则表达式入门

时间:2015-03-18 18:11:08  来源:免费模板网 作者:风雪 阅读次数 tagsphp运用

正则表达式常见于检查用户的输入是否正确,如正则匹配手机号码,匹配邮箱等。
里面有原子符等,那么今天就带大家认识一下 
想必很多人都对正则表达式都头疼.今天,我以我的认识,加上网上一些文章,希望用常人都可以理解的表达方式.来和大家分享学习经验.


  开篇,还是得说说 ^  和  $  他们是分别用来匹配字符串的开始和结束,以下分别举例说明 


"^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后面可以有2-5个b("abbb", "abbbb", or "abbbbb"). 



现在我们把一定几个字符放到小括号里,比如:

"a(bc)*": 匹配 a 后面跟0个或者一个"bc"; 
"a(bc){1,5}": 一个到5个 "bc." 


还有一个字符 '│', 相当于OR 操作: 


"hi│hello": 匹配含有"hi" 或者 "hello" 的 字符串; 
"(b│cd)ef": 匹配含有 "bef" 或者 "cdef"的字符串; 
"(a│b)*c": 匹配含有这样多个(包括0个)a或b,后面跟一个c 
的字符串; 


一个点('.')可以代表所有的单一字符,不包括"\n"

如果,要匹配包括"\n"在内的所有单个字符,怎么办?

对了,用'[\n.]'这种模式.


"a.[0-9]": 一个a加一个字符再加一个0到9的数字 
"^.{3}$": 三个任意字符结尾 . 




中括号括住的内容只匹配一个单一的字符 


"[ab]": 匹配单个的 a 或者 b ( 和 "a│b" 一样); 
"[a-d]": 匹配'a' 到'd'的单个字符 (和"a│b│c│d" 还有 "[abcd]"效果一样); 一般我们都用[a-zA-Z]来指定字符为一个大小写英文
"^[a-zA-Z]": 匹配以大小写字母开头的字符串 
"[0-9]%": 匹配含有 形如 x% 的字符串 
",[a-zA-Z0-9]$": 匹配以逗号再加一个数字或字母结尾的字符串 


你也可以把你不想要得字符列在中括号里,你只需要在总括号里面使用'^' 作为开头 "%[^a-zA-Z]%" 匹配含有两个百分号里面有一个非字母的字符串. 

要点:^用在中括号开头的时候,就表示排除括号里的字符 

为了PHP能够解释,你必须在这些字符面前后加'',并且将一些字符转义. 

不要忘记在中括号里面的字符是这条规路的例外—在中括号里面, 所有的特殊字符,包括(''), 都将失去他们的特殊性质 "[*\+?{}.]"匹配含有这些字符的字符串.

还有,正如regx的手册告诉我们: "如果列表里含有 ']', 最好把它作为列表里的第一个字符(可能跟在'^'后面). 如果含有'-', 最好把它放在最前面或者最后面, or 或者一个范围的第二个结束点[a-d-0-9]中间的‘-’将有效. 

本文地址:https://www.freemoban.com/php/2015/0318/950.html

猜你喜欢
栏目推荐
模板推荐

Copyright:www.freemoban.com 免费模板网 All Rights Reserved 网站备案:辽ICP备19014872号-2   辽公网安备 21010602000376号  辽公网安备:42900402000182号

免责声明:本站部分资源来自互联网收集,版权归原创者所有,如果侵犯了你的权益,我们会及时删除侵权内容,联系QQ:1615187561 谢谢合作!