• Imagix 4D ユーザガイド
  • 目次

付録D.パターンマッチングの形式

[データソース] ダイアログ、[grep検索] タブ、[フィルタ] / [追加] ダイアログなど Imagix 4D ユーザ・インターフェイスのさまざまな機能では、パターンマッチングを用いてユーザ指定のパターンに一致する文字列や名前を特定します。多くの場合、これらの機能は glob スタイルのパターンマッチングをサポートしており、Unix シェルで使用される規則をファイル名の展開に適用します。ただし例外として、[grep検索] タブで正規表現のパターンマッチングが使用されると、Unix regexp コマンドで使用する規則が適用されます。

glob スタイルのパターンマッチング

glob スタイルのパターンには、以下の特殊文字を使用することができます。

?任意の1文字に一致します。
*連続する任意の個数(0個も含む)の文字列に一致します。
[chars][ ] 内に指定された文字列(chars)のうち、任意の1文字に一致します。文字列のなかに a-b の形式の文字列が含まれている場合、a から b までの(a、b も含む)いずれかの文字に一致します。
\x文字 x に一致します。

正規表現のパターンマッチング

正規表現のマッチングでは、以下の規則を用いてパターンのマッチングを判断します。

正規表現とは、任意の個数(0個も含む)のピースが繋がった文字列のパターンを表現する方法の1つです。最初のピースとマッチするもの、次に2番目のピースとマッチするもの、3番目のピース …… と順番にパターンとのマッチングが実行されます。

ピースとは1つのアトムであり、 *+? などの特殊文字が続くことがあります。後ろに * が続くアトムは、そのアトムにマッチする0個以上からなるシーケンスに一致します。後ろに + が続く場合には、そのアトムの1個以上にマッチするシーケンスに一致します。後ろに ? が続く時は、そのアトムに一致マッチするか、空文字列に一致します。

アトムとは丸括弧で囲まれた正規表現(その正規表現に一致するもの)であり、レンジ(下記を参照)、. (任意の1文字に一致)、^ (入力文字列の最初の空文字列に一致)、$ (入力文字列の最後の空文字列に一致)、\ とそのあとに続く1文字(その文字に一致)、あるいは他に有意性のない1文字(その文字に一致)を指します。

レンジとは、[ ]で囲まれた文字列のことであり、通常は、その文字列に含まれる任意の1文字に一致します。^ で始まる文字列の場合は、^ の後に続く文字列を含まない任意の1文字に一致します。文字列の中に - で繋がった2文字がある場合、その2文字の間にある ASCII 文字のすべての文字に一致します(例えば、[0-9]は任意の10進数字に一致します)。文字列に文字として ] を記述するには、先頭の文字にします( ^ のあとに記述することは可能)。文字として - を記述するには、先頭または末尾の文字にします。