【Ruby3.x】File::fnmatch?()メソッドの使い方
fnmatch?メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
fnmatch?メソッドは、RubyのFileクラスに属し、UNIXシェルのファイル名パターンマッチング規則に基づいて、指定された文字列が特定のパターンに合致するかどうかを判定するメソッドです。このメソッドは、正規表現とは異なり、ファイル名検索などで一般的に使用されるシンプルなワイルドカードパターンを扱います。
第一引数には比較するパターン文字列を、第二引数には比較対象の文字列を指定します。パターン文字列では、アスタリスク(*)が任意の文字の連続に、疑問符(?)が任意の一文字にマッチします。例えば、「*.txt」というパターンは「document.txt」や「report.txt」に合致しますが、「dir/file.txt」には合致しません。
オプションの第三引数としてフラグを指定することで、マッチングの挙動を細かく制御できます。FNM_PATHNAMEフラグを使用すると、パス区切り文字(通常はスラッシュ)が特別な文字として扱われ、ディレクトリ階層を考慮したマッチングが可能になります。また、FNM_DOTMATCHフラグを設定することで、ファイル名の先頭にあるドット(.)で始まるファイルもパターンマッチングの対象に含めることができます。
このメソッドは、ファイルシステムから特定のファイルを探したり、ファイル名に基づいて処理を分岐させたりする際に非常に便利です。合致すればtrue、しなければfalseを返します。
構文(syntax)
1File.fnmatch?(pattern, path)
引数(parameters)
pattern, path, flags = 0
- pattern: マッチさせるファイル名のパターンを指定する文字列
- path: マッチさせる対象のファイルパスを指定する文字列
- flags = 0: マッチングの挙動を制御するフラグを指定する整数(デフォルトは0)
戻り値(return)
Boolean
指定された文字列が、指定されたパターンにマッチするかどうかを真偽値 (true または false) で返します。