- ベストアンサー
preg_match関数で正規表現の複数指定方法。
./aaaディレクトリ内においてファイル名に、『bbbb』及び『cccc』と言う文字列が含まれるファイルを./eeeディレクトリに移動させるスクリプトを考えております。 以下は『bbbb』のみを拾うようなスクリプトです。 ========= <?PHP if ($dir = opendir("./aaa")) { while (($file = readdir($dir)) !== false) { if(preg_match("/bbbb/",$file)) rename("./aaa/".$file,"./eee/".$file); } closedir($dir); } ?> ========= 上記は前にこちらで質問させていただき、正常に動くことを確認しております。 今回は『bbbb』及び『cccc』が含まれる場合に./eeeディレクトリに移動させることを考えております。 このような場合は『cccc』はどのよう記載すればよいのでしょうか?ご教授の程よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
どちらとも含まれる場合と言う意味ですよね? 単に preg_match をもう一回やればいいのではないかと。 if(preg_match("/bbbb/",$file)) { if(preg_match("/cccc/",$file)) { rename("./aaa/".$file,"./eee/".$file); } }
その他の回答 (2)
- sakusaker7
- ベストアンサー率62% (800/1280)
#1さんの回答を見て疑問に思ったのですが、 「bbb及びcccc」が含まれる場合というのは、bbbbとccccがともに 含まれている場合、あるいはいずれかが含まれている場合。 どちらでしょうか? わたしは前者ではないかととったのですが。
お礼
早急な補足要求ありがとうございます。 補足が遅れてしまい申し訳ございません。 #3様の回答で上手く動きましたが、“bbbbとccccがともに 含まれている場合”の部分をご指摘くださいましてありがとうございました。
- yambejp
- ベストアンサー率51% (3827/7415)
ご自身で正規表現について学習なさることをオススメします。 とりあえずは preg_match("/bbbb|cccc/",$file)
お礼
ご回答ありがとうございます。 結果としては#3様の回答で上手く動きましたが、 正規表現について少しだけ知識がつきました。 ありがとうございます。
お礼
ご回答ありがとうございます。 解決できました。ホントに助かりました。ありがとうございます。