-1

被这个O_o难住了...

if(preg_match("(\d{1,2})\:(\d{2})", "5:00", $matches) == 1) echo "works";
else echo "don't work";

会回声

don't work

但是 Regex 101 上的相同正则表达式似乎工作正常:http ://regex101.com/r/mW1dN9

我需要一个全球标志或其他东西吗?

4

2 回答 2

3

您的正则表达式模式需要一些分隔符。

if(preg_match("#(\d{1,2})\:(\d{2})#", "5:00", $matches) == 1) echo "works";
else echo "don't work";
于 2013-03-06T17:12:30.063 回答
2

您需要将正则表达式放在分隔符内:

if(preg_match("/(\d{1,2}):(\d{2})/", "5:00", $matches) == 1) echo "works";
else echo "don't work";

此外,您不需要转义:,但它可以工作。

于 2013-03-06T17:13:06.293 回答