7

私はうまくいったそのテストをしました:

if (ereg("([0-9]{2})[-./]([0-9]{2})[-./]([0-9]{4})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})", $dateToTest, $tab) == false)

eregは非推奨になっているため、このテストを次のテストに置き換えました。

if (preg_match("/([0-9]{2})[-./]([0-9]{2})[-./]([0-9]{4})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})/", $dateToTest, $tab) == false)

しかし、次のエラーが発生します。

Warning: preg_match() [function.preg-match]: Unknown modifier '.' in ..................

問題は何ですか?どうすれば解決できますか?

4

3 に答える 3

10

/正規表現で再び使用するため、問題は区切り文字です。

エスケープする\/か、次のような別の区切り文字を使用する必要があり@ます。

if (preg_match("@([0-9]{2})[-/.]([0-9]{2})[-/.]([0-9]{4})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})@", $dateToTest, $tab) == false)

Docuの例 #3 を参照してください。区切り文字についてのマニュアルもあります。

于 2011-12-06T13:35:06.500 に答える
4

式にエスケープされていないスラッシュがあります。式の開始など、別の区切り文字 に変更/するか、別の区切り文字を使用してください。\/@

于 2011-12-06T13:34:09.950 に答える
0

エラーはこちら/.です。この正規表現が何を意味するのかわからないので、.またはに変更できます\.

于 2011-12-06T13:35:56.290 に答える