これに困惑 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
グローバルフラグか何かが必要ですか?
これに困惑 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
グローバルフラグか何かが必要ですか?
正規表現パターンには区切り文字が必要です。
if(preg_match("#(\d{1,2})\:(\d{2})#", "5:00", $matches) == 1) echo "works";
else echo "don't work";
デリミタ内に正規表現を入れる必要があります。
if(preg_match("/(\d{1,2}):(\d{2})/", "5:00", $matches) == 1) echo "works";
else echo "don't work";
また、 をエスケープする必要はありませんが、:
どちらの方法でも機能します。