正規表現

Topへ

概要:正規表現パターンを使って文字列とマッチングさせることができるBルールのセットです。これらのBルールには、プレフィックスreg::がつきます。 このビルトインは標準ビルトインになりました。reg.dllをロードする必要はありません。reg.dllは互換のために空のDLLになっています。

述語名/引数  (reg:match *str *pattern *result )
要約 文字列*strから、正規表現*patternにマッチする文字列を取得します。
互換性 Win, Unix
引数 *str [in] 文字列
*pattern [in] 正規表現を表す文字列
*result [out] マッチした文字列のリスト
成功/失敗 true  文字列*strが*patternで指定された正規表現にマッチしてかつマッチした文字列のリストと*resultのマッチングに成功した
false 上記以外
解説 *resultには、マッチした文字列が返ります。最初の文字列はマッチした全体の文字列です。2番目以降は、サブパターンにマッチした文字列です。

この関数の成功する条件として*str全体が*patternにマッチする必要があります。

例:

[D]>(reg:match "test" "es" ?)
-------------------------D execution ---------------------
----------------------------------------------------------
succeeded.
(reg:match "test" "es" ("es"))
 


[D]>(reg:match "test" "e(s)" ?)
-------------------------D execution ---------------------
----------------------------------------------------------
succeeded.
(reg:match "test" "e(s)" ("es" "s"))

 

 


述語名/引数  (reg:match *str *pattern *result *start *next)
要約 文字列*strから、正規表現*patternにマッチする文字列を取得します。
互換性 Win Unix
引数 *str [in] 文字列
*pattern [in] 正規表現を表す文字列
*result [out] マッチした文字列のリスト
*start [in] マッチングを試みる位置
*next [out] 次にマッチングを試みる位置
成功/失敗 true  文字列*strが*patternで指定された正規表現にマッチして、かつ、マッチした文字列のリストと*resultのマッチングに成功して、かつ、*start、*nextに関するマッチングがそれぞれ成功した
false 上記以外
解説 *result マッチした文字列が返ります。
*start 検索を開始する文字列の位置を指定します。0は先頭をあらわします。
*next 次に検索するべき位置が返ります。

 


述語名/引数  (reg:match_all *str *pattern *result)
要約 文字列*strから、正規表現*patternにマッチする文字列を全て取得します。
互換性 Win Unix
引数 *str [in] 文字列
*pattern [in] 正規表現を表す文字列
*result [out] マッチした文字列のリスト
成功/失敗 true  文字列*strが*patternで指定された正規表現にマッチしてかつマッチした文字列のリストと*resultの マッチングに成功した
false 上記以外
解説 *result マッチした文字列が返ります。
*resultに代入されるリストは以下の形式です。
  ((マッチした全体の文字列 サブパターンにマッチした文字列 ...) ...)
第一形式は、貪欲ではないマッチングを行います。

 


述語名/引数  (reg:replaceOne *str *pattern *fmt *result)
要約 文字列*str中の*patternにマッチする最初の部分文字列を*fmtで一回だけ置き換えます。
互換性 Win Unix
引数 *str [in] 文字列
*pattern [in] 正規表現を表す文字列
*fmt [in] 置き換える文字列
*result [out] 置き換えた後の文字列
成功/失敗 true  0回又は1回の置き換えに成功して*resultのマッチングに成功した
false 上記以外
解説 置き換えは一回だけ起こります。正規表現にマッチする文字列が現れない場合は*resultには*strのコピーが代入されます。

 


述語名/引数  (reg:replaceAll *str *pattern *fmt *result)
要約 文字列*str中の*patternにマッチする全ての部分文字列を*fmtで置き換えます。
互換性 Win Unix
引数 *str [in] 文字列
*pattern [in] 正規表現を表す文字列
*fmt [in] 置き換える文字列
*result [out] 置き換えた後の文字列
成功/失敗 true  0回又は1回の置き換えに成功して*resultのマッチングに成功した
false 上記以外
解説 正規表現にマッチする文字列が現れない場合は*resultには*strのコピーが代入されます。