以AND开头并以该字符结尾的字符串不应匹配。
做这样的事情最简单吗:
$string = '!test';
preg_match('/^(!?)([a-z0-9]{1,10})(!?)$/i', $string, $matches);
并检查$ matchs?
如果您在开头或结尾处只有一个字符,那么就这么简单:
/^!|!$/
无需捕获组。
更新:为确保您获得一个感叹号和十个字母或十个字母和一个感叹号,请按如下所示构建您的模式:
/^!?[a-z0-9]{1,10}$|^[a-z0-9]{1,10}!?$/
看起来好像是在重复自己,但实际上它比拥有三个捕获组便宜得多,而且速度更快。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句