• ベストアンサー

.htaccessの正規表現

.htaccessの正規表現で質問があります。 <Files ~ "\.(html|gif|jpeg|png)$"> 例えばこのような場合最後のファイル名が「html」「gif」「jpeg」「png」に適用されますが、~(チルダ)はパターンマッチ、(||)(カッコとパイプライン)はパイプラインで区切ってそのいずれか、$(ドルマーク)は行末のマッチングと分かったのですが、\.(円マークとドット)が分かりません。どういう意味なんでしょうか? 例えば、次のように記述すると間違いなんでしょうか? <Files ~ "(html|gif|jpeg|png)$"> また、 <Files password.html> このような記述が載っていたのですが、ファイル名がこのような場合ダブルクォーテーション(")で囲まなくていいのでしょうか? また、*(アスタリスク)と?(クエスチョンマーク)は必ず1文字以上でなければいけないのでしょうか?0文字ではダメなんでしょうか? 回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.1

> \.(円マークとドット)が分かりません。どういう意味なんでしょうか? \はエスケープ文字といいます。次に来る記号に正規表現としての特別の意味を持たせないで、その記号の表す文字そのものを意味します。 .は、直前に\が付いているので、文字ドットそのものを表します。 \.で、文字ドットそのものです。この場合は、ファイル拡張子のドットを表現しています。 正規表現をあらわすための記号そのものを、パターンの中で普通の文字として使いたいときの事を考えると良くわかると思います。 > 次のように記述すると間違いなんでしょうか? <Files ~ "(html|gif|jpeg|png)$"> 次のファイルもマッチします。(htmlが必ずしも拡張子となっていない可能性があります。) abc.xyzhtml abcxyzhtml > <Files password.html> 一つの場合は、OKです。 ------------------------------------------------------------ *(アスタリスク)は、0文字以上の任意の文字列 ?(クエスチョンマーク))は、任意の1文字 ------------------------------------------------------------ にマッチします。

miya_HN
質問者

お礼

\というのはドット(.)の文字そのものを表すためにその文字の前に配置するものなんですね。 「password.html」は一つの場合のみダブルクォーテーション(")で囲まなくてすむんですね。 *(アスタリスク)は0文字以上で、?(クエスチョンマーク)は1文字以上ですか。 分かりました。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A