4D v16.3

Match regex

ホーム

 
4D v16.3
Match regex

Match regex 


 

Match regex ( pattern ; aString ; start {; pos_found ; length_found}{; *} ) -> 戻り値 
引数   説明
pattern  テキスト in 通常の式
aString  テキスト in 検索が実行される文字列
start  倍長整数 in aStringで検索が開始する位置
pos_found  倍長整数配列, 倍長整数変数 in オカレンスの位置
length_found  倍長整数配列, 倍長整数変数 in オカレンスの長さ
演算子 in 渡された場合、示された位置で検索するのみ
戻り値  ブール in True = 検索がオカレンスを発見した場合 その他の場合はFalse
Match regex ( pattern ; aString ) -> 戻り値 
引数   説明
pattern  テキスト in Regular expression (complete equality)
aString  テキスト in String in which search will be done
戻り値  ブール in True = search has found an occurrence; Otherwise, False.

説明   

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

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

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

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

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

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

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

正規表現に関する詳細は、以下の情報を参照してください:
http://ja.wikipedia.org/wiki/正規表現

pattern引数に渡す正規表現の構文についての詳細は、次のアドレスを参照してください:
http://www.icu-project.org/userguide/regexp.html

完全に対等なものを検索する(単純なシンタックス):
vfound:=Match regex(pattern;mytext)

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

位置を用いてテキストで検索する
vfound:=Match regex( pattern;mytext; start; pos_found; length_found)
すべての$1タグを表示する例:

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

括弧を使用したグループキャプチャのサポートを用いて検索する。正規表現では ( ) を使用してグループを定義する。
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

示されている位置のパターンの類似を制限しながら検索する
以前の2つの構文のうち1つの最後にスターを追加します。

 vfound:=Match regex("a.b";"---a-b---";1;$pos_found;$length_found)
  `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 を返す


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

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

 
プロパティ 

プロダクト: 4D
テーマ: 文字列
番号: 1019

Errorシステム変数が更新されることがあります。This command can be run in preemptive processesUnicodeモードの設定がこのコマンドの動作に影響します

 
履歴 

初出: 4D v11 SQL

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)