php preg匹配一个忽略空格的字符串

时间:2010-12-02 12:40:17

标签: php regex preg-match

您好我需要更改此表达式,以便忽略空格

preg_match("/([a-zA-Z\s]{2,}\,\s)+(RED|BLUE|GREEN|BLACK)$/i",$query, $matches))

$query = "Honda Accord, RED"

所以即使添加了空格,它仍然会得到匹配;

$query = "   Honda    Accord   ,    RED   "

基本上我需要将比赛作为本田雅阁,红色和正确的间距。正如你所看到的,我没有正则表达式专家:)

提前致谢。

2 个答案:

答案 0 :(得分:2)

$query = "   Honda    Accord   ,    RED   "; 
$query = trim($query); // remove spaces at the ends //
$query = preg_replace('/\s+/', ' ', $query); // make sure there aren't multiple spaces //
$query = preg_replace('/\s?,\s?/', ', ', $query); // enforce the 'word, word' format //
preg_match("/([a-zA-Z\s]{2,}\,\s)+(RED|BLUE|GREEN|BLACK)$/i",$query, $matches);

这会格式化您的字符串,使其具有标准格式,但如果您只想获取匹配项,则只需在需要时添加\s*即可。

答案 1 :(得分:0)

在颜色之前和之后以及开头都需要空格:

^\s*([a-zA-Z\s]{2,},\s)+\s*(RED|BLUE|GREEN|BLACK)\s*$

Rubular link