名前の先頭に特定の文字列 (私の場合は日付スタンプ) があり、最後に特定の文字列 ".php" があるディレクトリ内のすべての PHP ファイルのリストを作成しようとしています。日付が変数 ($SearchDate) として渡されます。ディレクトリからファイルの完全なリストを読み込むように PHP スクリプトを既に正常にセットアップしており、preg_match を使用してリストをフィルタリングしようとしていました。残念ながら、このチートシートを繰り返し試しても、私は RegEx で完全に失敗しています。
これが私が持っているもので、エラーが発生し、結果がありません:
$SearchDate = '2013-02'; //example for february of 2013
if(preg_match('#^('.$SearchDate.')+[:graph:]{1}(\.(pdf))#', $file)) {
//do something
}
私も試しました:
preg_match('#^\Q'.$SearchDate.'\E+[:graph:]{1}\Q.pdf\E#', $file)
ファイル名は次のようになります。
2013-02-ファイル名MightBeAlphaOr1234567890.pdf
私が得ているエラーは次のようになります。
警告: preg_match() [function.preg-match]: コンパイルに失敗しました: POSIX 名前付きクラスは、26 行目の /home/directory/myfile.php のオフセット 5 のクラス内でのみサポートされます