| 4D v13.4Match regex | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v13.4
 Match regex 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Match regex ( pattern ; aString {; start {; pos_found ; length_found}{; *}} ) -> 戻り値 | ||||||||
| 引数 | 型 | 説明 | ||||||
| pattern | テキスト |   | 通常の式 | |||||
| aString | テキスト |   | 検索が実行される文字列 | |||||
| start | 倍長整数 |   | aStringで検索が開始する位置 | |||||
| pos_found | 倍長整数配列, 倍長整数変数 |   | オカレンスの位置 | |||||
| length_found | 倍長整数配列, 倍長整数変数 |   | オカレンスの長さ | |||||
| * | 演算子 |   | 渡された場合、示された位置で検索するのみ | |||||
| 戻り値 | ブール |   | True = 検索がオカレンスを発見した場合 その他の場合はFalse | |||||
Match regexコマンドを使用して、 "正規表現" と呼ばれるメタ言語で合成された規則のセットと文字列が一致しているかを確認します。
正規表現を渡して、patternで検索します。これは特殊文字を用いて、文字列を説明するために使用される文字のセットから成ります。
aStringに正規表現で検索する文字列を渡します。
startでは、aString中で検索を開始する位置を渡します。
pos_foundとlength_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タグを表示する例:
括弧を使用したグループキャプチャのサポートを用いて検索する。正規表現では ( ) を使用してグループを定義する。
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 を返すエラーのイベントでは、コマンドはエラーを生成しますが、ON ERR CALLコマンドを用いてインストールされたメソッドで、これを検知することができます。
	プロダクト: 4D
	テーマ: 文字列
	番号: 
        1019
        
        
        
	
        
        
 
        
	初出: 4D v11 SQL