2013-10-02 28 views
-1
preg_match('/[a-z1-9]{2,5}-\d(\.\d)?/', "example.com - ABC-1.0", $match); 

这是在http://gskinner.com/RegExr/工作。我在那里得到预期的比赛 - 它匹配“ABC-1.0”。但不使用preg_match。 matches数组是空的。正则表达式在http://gskinner.com/RegExr/工作,但不与preg_match

+0

使用'$ preg_match_all()' –

+0

[检查'preg_match()'的文档和示例。](http://php.net/manual/en/function.preg-match.php) – PeeHaa

+0

可能的重复[使用preg_match函数的PHP错误](http://stackoverflow.com/questions/19114821) – cmbuckley

回答

3

You need to use delimiters when using PCRE functions。您还需要正则表达式不区分大小写。

preg_match('/[a-z1-9]{2,5}-\d(\.\d)?/i' 
+0

对,对不起。在代码中有分隔符。 –

+0

@MichelleWilliamson在不区分大小写的情况下,'a'不会匹配'A'('/ i') –

0

您可以使用修饰符组添加不区分大小写的正则表达式。
另请注意,组1是可选的,所以如果它没有找到.number组1将是空的。

/(?i)[a-z1-9]{2,5}-\d(\.\d)?/

0

如果你知道ABC部分应该始终与大写字母,您可以通过使用[A-Z1-9]

好过含糊明确的,当涉及到正则表达式,使其明确。