前のページ|次のページ

PRXPARSE関数

文字値のパターンマッチングに使用できるPerl正規表現(PRX)をコンパイルします。

カテゴリ: 文字列マッチング
制限事項: 他のPerl正規表現とともに使用します。
PRXPARSEにはDBCSとの互換性がありません。

構文

必須引数

regular-expression-id

PRXPARSE関数によって返される数値のパターン識別子です。

perl-regular-expression

Perl正規表現の文字値を指定します。

詳細

基本

PRXPARSE関数は、他のPerl関数とCALLルーチンでパターンを照合するために使用するパターン識別子番号を返します。正規表現の解析でエラーが発生すると、SASは欠損値を返します。
PRXPARSEは、Perl正規表現の構成にメタ文字を使用します。一般的なメタ文字の表については、Perl正規表現(PRX)のメタ文字テーブルを参照してください。
パターンマッチングの詳細については、Perl正規表現(PRX)を使用したパターンマッチング を参照してください。

Perl正規表現のコンパイル

perl-regular-expressionが定数の場合、または/oオプションを使用する場合、Perl正規表現は1回のみコンパイルされます。後続のPRXPARSEの呼び出しでは再コンパイルされず、すでにコンパイル済みの正規表現のregular-expression-idが返されます。この動作では、初期化ブロック(IF _N_ =1)を使用してPerl正規表現を初期化する必要がないため、コードが簡素化されます。
注: Perl正規表現が定数の場合、または正規表現で/oオプションを使用する場合、PRXFREEを呼び出すとメモリ割り当てが解放され、次回PRXPARSEによって呼び出されたときに正規表現を再コンパイルする必要があります。コンパイル1回のみの動作は、DATAステップでPRXPARSEを使用する場合に発生します。他のすべての使用では、PRXPARSEを呼び出すたびにperl-regular-expressionが再コンパイルされます。

比較

Perl正規表現(PRX)の関数とCALLルーチンは、連携してパターンと一致する文字列を操作します。これらの関数およびCALLルーチンのリストと概要説明については、カテゴリ別のSAS関数とCALLルーチンの文字列マッチングカテゴリを参照してください。

次の例では、メタ文字と正規表現を使用してPerl正規表現を構成します。この例では、アドレスを解析してフォーマットされた結果をSASログに書き込みます。
data _null_;
   if _N_=1 then 
   do;
      retain patternID;
         /* The i option specifies a case insensitive search. */
      pattern="/ave|avenue|dr|drive|rd|road/i";
      patternID=prxparse(pattern);
   end;
   input street $80.;
   call prxsubstr(patternID, street, position, length);
   if position ^= 0 then
   do;
      match=substr(street, position, length);
      put match:$QUOTE. "found in " street:$QUOTE.;
   end;
   datalines;
153 First Street
6789 64th Ave
4 Moritz Road
7493 Wilkes Place
;
次の出力がログに書き込まれます。
"Ave" found in "6789 64th Ave" "Road" found in "4 Moritz Road"

関連項目:

前のページ|次のページ|ページの先頭へ