重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

PHP ですが、
ディレクトリに、以下があるとします。
hogeA.html
fooB.html
hoge.htm
abc.txt

このディレクトリ内のファイルの中から、
hogeA.html
fooB.html
に該当させる式を作りたいのですが、

/^hogeA|^hogeB/

ファイル名はこれで良いと思うのですが、拡張子の箇所がわからず、
色々と試したものの上手く作成できませんでした。

わかる方、ご教授下さい。

よろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    /^hogeA|^fooB/

    の間違えでした。

      補足日時:2020/08/20 12:47
  • うーん・・・

    拡張子 .html もしくは .htm である事、
    上記の拡張子の中でも、不要なファイル、上記の例では hoge を含めない事。
    が規則です。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/08/20 12:52
  • うーん・・・

    数が少ないなら良いのですが、
    数が多いもので。

    No.2の回答に寄せられた補足コメントです。 補足日時:2020/08/20 13:09

A 回答 (5件)

こんな感じ。



/^(hogeA|fooB)\.html$/
    • good
    • 0
この回答へのお礼

回答有難う御座います。

色々と各々の考え方があるとおもいますが、その主張はおおよそ平行線を辿るので。。。
それよりも、式だけ欲しかったので助かります。

お礼日時:2020/08/20 16:35

> 拡張子 .html もしくは .htm である事、


> 上記の拡張子の中でも、不要なファイル、上記の例では hoge を含めない事。

対象がhogeA、fooBの2つであると決まっているならば
^(hogeA|fooB)\.html?$

○ hogeA.html
○ fooB.html
○ fooB.htm
× hogeABC.html
× hogeB.html
× hogeB.txt
× hoge.htm
× hoge.html
× abc.txt


hogeABC.htmlやhogeB.htmlなども抽出対象である必要があるのなら
^.+(?<!hoge)\.html?$

○ hogeA.html
○ fooB.html
○ fooB.htm
○ hogeB.html
○ hogeABC.html
× hogeB.txt
× hoge.htm
× hoge.html
× abc.txt
    • good
    • 0
この回答へのお礼

回答有難う御座います。

まだわかってはいないのですが 2 番目の式、勉強させて頂きます。

お礼日時:2020/08/20 16:37

https://www.php.net/manual/ja/function.glob.php

ファイルの一覧を取得する段階で.htmlと.htmだけにすれば
あとはファイル名のみのマッチングですむのでは?
    • good
    • 0
この回答へのお礼

回答有難う御座います。

お礼日時:2020/08/20 16:32

こんにちは



>拡張子の箇所がわからず、~~
ご提示の利用方法の範囲なら、マッチしたら「元文字列の全文」を使えばいいので、拡張子は無視してもまったく問題はないのでは?

正規表現で抜き出すと考えようとしても、ヒットしたら「=元の文字列全文」なので、「抜き出す」ことの意味がないので・・・
この回答への補足あり
    • good
    • 0
この回答へのお礼

回答有難う御座います。

お礼日時:2020/08/20 13:10

規則がないなら正規表現にする必要ないのでは?

この回答への補足あり
    • good
    • 0
この回答へのお礼

回答有難う御座います。

お礼日時:2020/08/20 13:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!