-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 に答える