一个正则表达式 匹配以“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 不符合 ?>end
附件下载/演示源码:
【 noxyz.htm 】 3.92KB
分享到: 更多
相关日志:
求正则表达式。匹配小数可有可无,最多两位小数,必须大于零
正则用(?>…)实现固化分组提高效率
php正则匹配图片路径
RegexBuddy 3 正则的翻译
编程语言中十六进制的正则匹配
[转] 揭开正则表达式的神秘面纱