2

こんにちは、次の行で「@」を一致させたいのですが、

create@create_time:"2012-05-30 21:14:35.0",update_time:"2012-05-31 22:05:46.0"

preg_replace("@", "", $content)

preg_replace("\@", "", $content)

どちらも機能していません。

4

2 に答える 2

6

後世のために: 他の誰かのコードの一部である正規表現でのアットマークの使用に混乱しているため、誰かがこれに出くわした場合に備えて@、 が開始および終了の regex-delimiterとして使用されることがあります。以下の引用は、リテラル '@' を照合する OP の試みが失敗した理由にも関連しています (強調は私のものです)。

PCRE 関数を使用する場合、パターンを区切り文字で囲む必要があります。区切り文字には、英数字、バックスラッシュ、空白文字以外の任意の文字を使用できます。

つまり、すべての正規表現文字列は、 character-class によって識別される一致する文字で開始および終了する必要[^A-Za-z\s\\]があります<> {} [] ()

于 2015-09-01T19:24:55.477 に答える
1

エラー メッセージを読むと、正規表現に区切り文字がないことがわかります。

正しいものは~@~

preg_replaceただし、この場合は必要ありません。

str_replace("@", "", $content)
于 2012-06-13T21:48:33.420 に答える