PRXMATCH 関数

パターンの一致を検索し、見つかったパターンの位置を返します。

返されるデータの種類:INTEGER

構文

引数

perl-regular-expression

Perl正規表現を値とする文字定数、変数または式を指定します。

データの種類CHAR

source

検索する文字定数、変数または式を指定します。

データの種類CHAR

詳細

基本

perl-regular-expressionを使用すると、PRXMATCH関数はperl-regular-expressionでsourceを検索し、文字列の開始位置を返します。一致が見つからない場合、PRXMATCHは0を返します。

WHERE句とPROC SQLで、PRXMATCHにPerl正規表現を使用できます。

注: DS2のPRX関数には次の制限が適用されます。
  • PRX形式の/…/…/で使用できるのはm、i、s、xのみで、前にも後にも1文字を置くことができます。
  • マッチングモード修飾子のp、o、c、a、lはサポートされていません。

Perl正規表現のコンパイル

perl-regular-expressionが定数の場合、または/oオプションが指定されている場合、一度コンパイルされたPerl正規表現がPRXMATCHの使用のたびに再利用されます。perl-regular-expressionが定数ではなく、/oオプションを使用しない場合、PRXMATCHを呼び出すたびにPerl正規表現が再コンパイルされます。

例: Perl正規表現を使用した部分文字列の位置の検索

次の例では、Perl正規表現を使用して文字列(Hello world)から部分文字列(world)を検索し、その部分文字列の文字列内の位置を返します。

proc cas;
   position=prxmatch('/world/', 'Hello world!');
   print "position=" position;
run;

SASは次の出力をログに書き込みます。

position=7
最終更新: 2026年9月18日