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日