1

私は次の正規表現を持っています。これは、配列に対する通常の文字列の一致に対して正常に機能しています。

preg_grep( "/^". $name . "$/i", $values);

ただし、「エンターテインメント(一般)」などの特殊文字を含む文字列では機能しません。

関連するスレッドを見つけますが、Javaスクリプト用であり、役に立ちませんでした。

4

1 に答える 1

5

この関数を使用preg_quoteして、文字列に含まれる可能性のある特殊文字をエスケープします。

preg_grep( "/^". preg_quote($name, '/') . "$/i", $values);

ドキュメントから:

preg_quote()正規表現構文の一部であるすべての文字の前に円記号を置きます。これは、一部のテキストで一致させる必要のあるランタイム文字列があり、その文字列に特殊な正規表現文字が含まれている可能性がある場合に役立ちます。

于 2012-12-15T15:56:54.600 に答える