入力文字列で、入力されたオフセットの位置以降にある正規表現を検索します。一致が見つかると、関数は文字列を3つの部分文字列および任意数のサブ一致に分割します。文字列で検索されたサブ一致を表示するには、関数のサイズを変更します。


icon

入力/出力

  • cbool.png 複数行? (F)

  • cbool.png 大小文字の区別を無視? (F)

  • cstr.png 入力文字列

  • cstr.png 正規表現

  • ci32.png オフセット (0)

  • cerrcodeclst.png エラー入力

  • istr.png 一致の前

  • istr.png 全体一致

  • istr.png 一致の後

  • ii32.png 一致後オフセット

  • ierrcodeclst.png エラー出力

  • メモ 「正規表現で一致」関数は、文字列内のNULL文字をサポートしません。この関数に配線した文字にNULL文字が含まれている場合、LabVIEWがエラーを返すとともに、関数は予期しない結果を返す場合があります。

    正規表現のサポートは、PCREライブラリパッケージにより提供されています。PCREライブラリパッケージ再配布時のライセンスの詳細については、<National Instruments>\_Legal Informationディレクトリを参照してください。

    RCRE (Perl Compatible Regular Expressions) については、PCREのWebサイト (www.pcre.org) を参照してください。

    「正規表現を一致」関数では、「パターンで一致」関数より詳細な検索オプションを設定できますが、処理速度は低下します。

    より詳細に検索するにはこの関数で正規表現を使用します。

    スタックオーバーフローを防止する

    繰り返されるグループ化された表現を使用する特定の正規表現 ((.|\s)* または (a*)*など) は、サイズが大きい入力文字列に適用されると、処理のために多くのリソースが必要になります。場合によっては、スタックオーバーフローがサイズの大きい入力文字列で発生します。一部の正規表現は、最終的にスタックをオーバーフローする可能性がある大きい文字列への一致を試みる間、再帰呼び出しを繰り返す場合があります。たとえば、(.|\n)*Aの正規表現とサイズが大きい文字列は、LabVIEWがクラッシュする原因となる場合があります。再帰呼び出しを回避するには、 (.|\n)*Aの正規表現を(?s).*Aとして書き直すことができます。(?s)の表記法は、ピリオドが新規のラインに一致することを示します。また、[^A]*Aとして表現を書き直すことができます。

    サブ一致用にパターンをグループ化する

    関数でサブ一致として返したい正規表現の部分の括弧( )で囲むことにより、サブ一致を検出できます。たとえば、(el.)..(L..)という正規表現は、Hello LabVIEW!という入力文字列からellLabという2つのサブ一致を返します。各部分一致は、文字グループに正規表現で表された順番で対応します。このサンプルでは、部分一致1ell部分一致2Labです。

    文字グループを別の文字グループの中にネストした場合、正規表現は、内側のグループよりも先に外側のグループの部分一致を作成します。たとえば、(.(el.).).(L..)という正規表現は、Hello LabVIEW!という入力文字列からHelloellLabという3つの部分一致を返します。このサンプルでは、内側のグループよりも先に外側のグループに一致するので、部分一致1Helloです。

    正規表現の例

    以下の表は、「正規表現で一致」関数で使用できる正規表現の例を示します。

    検索する文字列正規表現
    VOLTSVOLTS
    プラス記号またはマイナス記号[+-]
    1つまたは複数の数字のシーケンス[0-9]+
    ゼロ以上のスペース\s*または* (つまり、スペースの後にアスタリスクマーク)
    1つまたは複数のスペース、タブ、新規の行、または復帰改行[\t \r \n \s]+
    数字以外の1つまたは複数の文字[^0-9]+
    文字列の最初に表示する場合、語句はレベルのみ^Level
    文字列の最後に表示する場合、語句はVoltsのみVolts$
    括弧内の最長文字列\(.*\)
    括弧内の最初の文字列で、内部に括弧が含まれないもの\([^()]*\)
    左括弧\[
    右括弧\]
    catcagcotcogdatdagdotdog[cd][ao][tg]
    catまたはdogcat|dog
    dogcat dogcat cat dogcat cat cat dogなど((cat )*dog)
    スペースに続く1つまたは複数のaという文字と、それと同じ数のaという文字。つまり、a aaa aaaaa aaaなど。(a+) \1