kprolog K-Prolog Compiler Version 6.0

正規表現パターンマッチ

正規表現はエディタ等で使用する正規表現と類似のもので、 文字列またはアトムと正規表現パターンの一致を調べることができます。
正規表現パターンは文字列であらわします。

たとえば、"f.*" は f で始まる任意の文字列と、"[a-z]*"は小文字のみから なる文字列とマッチします。正規表現の検査は、

   reg_match(対象、正規表現パターン)
で行います。
[例]

   reg_match(banana,“[a-n]*")
   reg_match(banana,“b.*")
   reg_match(banana,“[^A-Z]*")
はそれぞれ成功します。

正規表現パターンは次の規則に基づいて作ります。
".","[","]","\","^","*"をここでは特殊文字と呼びます。

正規表現パターン中の、

  1. 特殊文字以外の文字は、それ自身とマッチします。
  2. .は任意の文字とマッチします。
  3. \xは特殊文字を含む任意の文字 x について、x 自身とマッチします。
  4. [abc]は、aまたはbまたはcとマッチします。
  5. [a-zA]は、文字コードが a から z の範囲内にある文字とAにマッチ します。[と]の間では、"-"も特殊文字です。
  6. [^a]は a以外の文字にマッチします。
  7. [^a-z]は文字コードがa から zの範囲にない文字にマッチします。
  8. 1-7の記号の後に*をつけたものは、1-7を0ないし 任意くり返したものにマッチします。例えば、 reg_match(X,"\[\**\]")のように使い、[と]で囲まれた任意個の * とマッチします。
正規表現の式が不正なとき、マッチしていないものとみなします。


一つ上に戻る 目次に戻る