php正则匹配以“abc”开头且不能以“xyz”结尾的字符串

本文介绍下,用php正则区配以"abc"开头的,且不能以"xyz"结尾的字符串的方法,有需要的朋友参考下。

要求:
用php正则表达式匹配以“abc”开头,但结尾不能包含“x”、“y”、“z”的字符串。

解析:
abc开头,正则这样写:^abc。
以abc开头了,后面要有一串的字符串
一般用[^…………]这样来否定。
既然是否定“x”、“y”、“z”,就是[^xyz]了。
 
完整的正则表达式就是这样:

^abc[^xyz]*$

下面是使用此正则的完整php示例,如下:

<?php
$str = 'abcdef124f';
$search = '/^abc[^xyz]*$/';

if(preg_match($search,$str)) {
 echo $str.' 符合<br />';
}else {
 echo $str.' 不符合<br />';
}
//output abcdef124f 符合

$str = 'abcdef12x124';
if(preg_match($search,$str)) {
 echo $str.' 符合<br />';
}else {
 echo $str.' 不符合<br />';
}
//output abcdef12x124 不符合
//edit by www.jbxue.com
?>
posted @ 2015-04-14 11:28  谦信君  阅读(11658)  评论(0编辑  收藏  举报