我想弄清楚如何使自定义模式与preg_match/preg_match_all一起使用。preg_match自定义模式
我需要找到[A-Z]{3}[a-z]{1}[A-Z]{3}
,这将是一个示例AREfGER。 3个大写字母,1个小写字母和3个大写字母。
有人知道如何为此制作图案吗?
我想弄清楚如何使自定义模式与preg_match/preg_match_all一起使用。preg_match自定义模式
我需要找到[A-Z]{3}[a-z]{1}[A-Z]{3}
,这将是一个示例AREfGER。 3个大写字母,1个小写字母和3个大写字母。
有人知道如何为此制作图案吗?
你可以这样做:
if(preg_match('/^[A-Z]{3}[a-z][A-Z]{3}$/',$input)) {
// $input has 3 uppercase, 1 lowercase and 3 uppercase.
}
您可以删除{1}
为多余的。
另外请确保您添加开始锚点^
和结束锚点$
。如果没有他们,即使模式在输入的任何地方找到,也会报告成功。例如@AREfGER#
编辑:
要查找文本,您可以使用preg_match_all
所有比赛:
if(preg_match_all('/([A-Z]{3}[a-z][A-Z]{3})/',$input,$match)) {
// array $match[1] will have all the matches.
}
简单:
preg_match('#[A-Z]{3}[a-z][A-Z]{3}#', $some_string);
如果此有匹配字符串作为一个整体:使用开始和结束锚点
preg_match('#^[A-Z]{3}[a-z][A-Z]{3}$#', $some_string);
是否可以列出所有匹配项? – NoobiCake 2010-09-15 09:35:52
如果你只是想看看这些匹配,那么在你完成codaddict提示的'preg_match_all()'调用之后,执行以下操作:'echo'
'; exit;' – 2010-09-15 14:53:48