正则表达式的基本方法

前端之家收集整理的这篇文章主要介绍了正则表达式的基本方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

大家都知道,正则表达式在处理字串方面,大大的方便了许许多多的PHP程式设计师.
但对于想学正则表达式的初学者而言,多多少少有一些问题,我想以下的解释或多或少都会有所帮助吧:)

通常上,正则表达式会用到以下的几个"符号":
^-代表字串前面一定要有这样的字,如^ http://,代表前面一定要有 http:// $-代表字串后面一定要有这样的字. ?(一个问号)-它代表一个或没有字元 *(一个*)-它代表没有或者更多前面的字元 .(一个句点)-它代表任何一个字元 +(一个加)-它代表至少一个或更多前面的字元 [xyz]-它代表任何一个字元,或x,或y,或z [a-z]-它代表任何一个字元,由a至z [[:alnum:]]-代表由a至z,0至9 [[:digit:]]-代表由0至9 当使用正则表达式时,必需注意ereg及eregi可大大不同喔~ ereg是非常敏感的(意即大小字母都分得非常清楚),而eregi则不是(只要记着i代表case-insensitive就可以了) 这里举一些例子: $regexp=eregi("a?c","abc");//--这是对的,因?可以代表"一个"或没有字元 $regexp=eregi("a?c","ac");//--这也是对的,因?可以代表一个或"没有"字元 $regexp=eregi("a?c","a");//--这样就不对了,纵使有a,可是还是要有c $regexp=eregi("[abc]","a");//--这是对的,因a是大括号里的其中一个字元 $regexp=eregi("[a-z]","c");//--这是对的,因c包括在a至z里 $regexp=eregi("[a-z]","0");//--这是不对的,因0并不包括在a至z里面 $regexp=eregi("a.c",因一个.代表"任何"一个字 $regexp=eregi("a.c","ac");//--这可就不对了,因.代表"一个"字元,所以放abbc也是不对的 $regexp=eregi("a+c","aaaac");//--这是对的,因+代表一人或"更多"前面的字元 $regexp=eregi("a+c","abbc");//--这样是不对的,+代表一个或更多"前面的字元",而不是代表任何一个字元 $regexp=eregi("a+c","abc");//--这样也是不对的,注释如上 $regexp=eregi("[^abc]","a");//--这是比较不同的一点,那就是如果^出现在[]里面,代表"除"了里面的字,全部都是对的. $regexp=eregi("[^abc]","d");//--这是对的,因d并不在abc里面 $regexp=eregi("[^[:alnum:]]","9");//--这是对的,因~并不包括在a至z,0至9里面 当然,[[:digit:]]用法也是相同: $regexp=eregi("[^[:digit:]]",因a并不包括在0至9里面 最后,举个有用的例子,比如说,我要每个人的密码都不准拥有0至9,可以这样试验: $regexp=eregi("^[^0-9]+$","aaa9");//--把aaa9当做密码 if($regexp==""){ echo"密码拥有号码,请改过"; }else{ echo"密码没有号码,通过"; } 测验显示,密码拥有号码,请改过. 相信每个人都看到,[^0-9]前后各有^及$,这是为了确保前后不能拥有号码,而+则确保中间没有任何的号码,[]里面的^,则是"除了0至9之外,其他一律通过" 所以只要将9拿去,就会显示"密码没有号码,通过"了!

猜你在找的正则表达式相关文章