Match regex

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 11


Match regex (pattern; aString{; start{; pos_found; length_found; *}}) ブール

引数説明
patternText通常の式
aStringText検索が実行される文字列
start数値aStringで検索が開始する位置
pos_found倍長整数の値 | 倍長整数の配列オカレンスの位置
length_found倍長整数の値 | 倍長整数 配列オカレンスの長さ
**渡された場合、示された位置で検索するのみ
戻り値ブールTrue = 検索がオカレンスを発見した場合
その他の場合はFalse

説明

Match regexコマンドを使用して、 "正規表現" と呼ばれるメタ言語で合成された規則のセットと文字列が一致しているかを確認します。

正規表現を渡して、patternで検索します。これは特殊文字を用いて、文字列を説明するために使用される文字のセットから成ります。

aStringに正規表現で検索する文字列を渡します。

startでは、aString中で検索を開始する位置を渡します。

pos_foundlength_foundが変数である場合、コマンド は位置とオカレンスの長さをこれらの変数に返します。配列を渡す場合、コマンドは位置とオカレンスの長さを配列の要素0に、正規表現によってキャプチャされたグループの位置と長さを続く要素に返します。

任意の* 引数 が渡されると、検索はstartで指定した位置から実行され、パターンにマッチしない場合でもそれ以降を検索しません。

検索がオカレンスを発見した場合、コマンドはTrueを返します。

正規表現に関する詳細は、以下の情報を参照してください:

http://en.wikipedia.org/wiki/Regular_expression

pattern引数に渡す正規表現の構文についての詳細は、次のアドレスを参照してください:

http://www.icu-project.org/userguide/regexp.html

例題

このコマンドは幾つかの方法で使用することができます。それらを以下の例で説明します。

1. 完全に対等なものを検索する

vfound:=Match regex(pattern;mytext)

   QUERY BY FORMULA([Employees];Match regex(".*smith.*"; [Employees]name))

2. 位置を用いてテキストで検索する

vfound:=Match regex( pattern;mytext; start; pos_found; length_found)

すべての$1タグを表示する例:

   
start
:=1
   Repeat
      
vfound
:=Match regex("<.*>";$1;
start
;
pos_found
;
length_found
)
      If(
vfound
)
         ALERT(Substring($1;
pos_found
;
length_found
))
start:=pos_found+length_found
End if
Until(Not(vfound))

3. "capture groups"のサポートを用いて検索する

vfound:=Match regex( pattern;mytext; start; pos_found_array; length_found_array)

   ARRAY LONGINT(
pos_found_array
;0)
   ARRAY LONGINT(
length_found_array
;0)
   
vfound
:=Match regex("(.*)stuff(.*)";$1;1;
pos_found_array
; 
length_found_array
)
   If(
vfound
)
      $group1:=Substring($1;
pos_found_array
{1};
length_found_array
{1})
      $group2:=Substring($1;
pos_found_array
{2};
length_found_array
{2})
   End if

4. 示されている位置のパターンの類似を制限しながら検索する

以前の2つの構文のうち1つの最後にスターを追加します。

   
vfound
:=Match regex("a.b";"---a-b---";1;$
pos_found
;$
length_found
)
      `returns True
   
vfound
:=Match regex("a.b";"---a-b---";1;$
pos_found
;$
length_found
;*)
      `returns False
   
vfound
:=Match regex("a.b";"---a-b---";4;$
pos_found
;$
length_found
;*)
      `returns True

Note: Unicodeモード、または、機能中のテキストが7ビットASCIIタイプの場合のみ、返された位置と長さはその意味を持ちます。

エラー処理

エラーのイベントでは、コマンドはエラーを生成しますが、ON ERR CALLコマンドを用いてインストールされたメソッドで、これを検知することができます。


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次