【Ruby3.x】File::fnmatch()メソッドの使い方
fnmatchメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
fnmatchメソッドは、RubyのFileクラスに属し、UNIXシェルで使用されるファイル名パターンマッチングを実行するメソッドです。このメソッドは、与えられた文字列(通常はファイル名やパス)が、ワイルドカードを含むパターンと一致するかどうかを判定するために利用されます。
主にパターン文字列と比較対象の文字列の二つを引数として受け取ります。パターンと文字列が一致する場合は真(true)を、一致しない場合は偽(false)を返します。パターン文字列では、アスタリスク「*」(任意の0個以上の文字)、疑問符「?」(任意の1文字)、角括弧「[ ]」(指定文字のいずれか1文字)などのワイルドカードが使用可能です。
第三引数としてオプションフラグを指定することで、マッチングの挙動を制御できます。例えば、File::FNM_PATHNAMEフラグを使用すると、ワイルドカードがパス区切り文字のスラッシュ「/」にマッチしなくなり、パスの階層を考慮したマッチングが可能になります。また、File::FNM_DOTMATCHフラグを設定することで、ファイル名の先頭のドット「.」へのマッチング挙動を調整できます。
このメソッドは、特定の条件に合致するファイルをリストアップする際のフィルタリングや、入力されたファイルパスの形式検証など、ファイルシステムに関連する多様な処理で非常に役立ちます。
構文(syntax)
1File.fnmatch(pattern, path, flags = 0)
引数(parameters)
pattern, path, flags = 0
- pattern: ファイル名パターンを指定する文字列。ワイルドカード(*, ?, [...])が使用できます。
- path: パターンと比較する対象のファイルパスを指定する文字列。
- flags = 0: ファイル名マッチングの挙動を制御する整数。デフォルトは0で、特別なフラグは指定されません。
戻り値(return)
Boolean
指定されたファイル名がパターンに一致するかどうかを示す真偽値を返します。