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

入力/出力
複数行? (F)
—
大小文字の区別を無視? (F)
—
入力文字列
—
正規表現
—
オフセット (0)
—
エラー入力
—
一致の前
—
全体一致
—
一致の後
—
一致後オフセット
—
エラー出力
—
|
正規表現のサポートは、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!という入力文字列からellとLabという2つのサブ一致を返します。各部分一致は、文字グループに正規表現で表された順番で対応します。このサンプルでは、部分一致1はell、部分一致2はLabです。
文字グループを別の文字グループの中にネストした場合、正規表現は、内側のグループよりも先に外側のグループの部分一致を作成します。たとえば、(.(el.).).(L..)という正規表現は、Hello LabVIEW!という入力文字列からHello、ell、Labという3つの部分一致を返します。このサンプルでは、内側のグループよりも先に外側のグループに一致するので、部分一致1はHelloです。
正規表現の例
以下の表は、「正規表現で一致」関数で使用できる正規表現の例を示します。
| 検索する文字列 | 正規表現 |
|---|---|
| VOLTS | VOLTS |
| プラス記号またはマイナス記号 | [+-] |
| 1つまたは複数の数字のシーケンス | [0-9]+ |
| ゼロ以上のスペース | \s*または* (つまり、スペースの後にアスタリスクマーク) |
| 1つまたは複数のスペース、タブ、新規の行、または復帰改行 | [\t \r \n \s]+ |
| 数字以外の1つまたは複数の文字 | [^0-9]+ |
| 文字列の最初に表示する場合、語句はレベルのみ | ^Level |
| 文字列の最後に表示する場合、語句はVoltsのみ | Volts$ |
| 括弧内の最長文字列 | \(.*\) |
| 括弧内の最初の文字列で、内部に括弧が含まれないもの | \([^()]*\) |
| 左括弧 | \[ |
| 右括弧 | \] |
| cat、cag、cot、cog、dat、dag、dot、dog | [cd][ao][tg] |
| catまたはdog | cat|dog |
| dog、cat dog、cat cat dog、cat cat cat dogなど | ((cat )*dog) |
| スペースに続く1つまたは複数のaという文字と、それと同じ数のaという文字。つまり、a a、aa aa、aaa aaaなど。 | (a+) \1 |
複数行? (F)
—
入力文字列
—
オフセット (0)
—
エラー入力
—
一致の前
—
一致後オフセット
—
エラー出力
—