前のページ|次のページ

CALL PRXCHANGEルーチン

パターンマッチングの置換を実行します。

カテゴリ: 文字列マッチング
制限事項: PRXPARSE関数とともに使用します。
このCALLルーチンに必要なPRXPARSE関数にDBCSとの互換性がないため、DBCSおよびMBCSデータの処理にこの関数を使用しないでください。
操作: %SYSCALLマクロステートメントで呼び出されると、CALL PRXCHANGEの引数から引用符が削除されます。詳細については、 CALLルーチンと%SYSCALLマクロステートメントを使用する を参照してください。

構文

必須引数

regular-expression-id

PRXPARSE関数によって返されるパターン識別子の値が含まれる数値変数を指定します。

時間

一致を検索して一致するパターンを置換する回数を指定する数値の定数、変数または式です。

ヒント timesの値が-1の場合、一致するすべてのパターンが置換されます。

old-string

検索と置換を実行する文字式を指定します。

ヒント new-string引数を使用しない場合、old-stringにすべての変更が加えられます。

オプション引数

new-string

old-stringへの変更の結果を挿入する文字変数を指定します。

ヒント PRXCHANGEルーチンの呼び出しでnew-string引数を使用した場合、old-stringは変更されません。

result-length

結果にコピーされる文字数の戻り値が含まれる数値変数です。

ヒント old-stringの値の末尾の空白はnew-stringにコピーされないため、result-lengthの長さには含まれません。

truncation-value

変更処理の結果に応じて、0または1の戻り値が含まれる数値変数です。

0 置換の結果全体の長さがnew-stringの長さ以下の場合。
1 置換の結果全体の長さがnew-stringの長さを超える場合。

number-of-changes

実行された置換の合計数の戻り値が含まれる数値変数です。new-stringに挿入されるときに結果が切り捨てられた場合、number-of-changesの値は変更されません。

詳細

CALL PRXCHANGEルーチンはパターンマッチをして置換します。timesの値が-1の場合、可能な限り多くの回数の置換が実行されます。
パターンマッチングの詳細については、Perl正規表現(PRX)を使用したパターンマッチングを参照してください。

比較

CALL PRXCHANGEルーチンは、PRXCHANGE関数に似ています。異なるのはCALLルーチンがパターンマッチングの置換値を引数の戻り値としてではなくそのパラメータの1つとして返す点です。
Perl正規表現(PRX)の関数とCALLルーチンは、連携してパターンと一致する文字列を操作します。これらの関数およびCALLルーチンのリストと概要説明については、カテゴリ別のSAS関数とCALLルーチンの文字列マッチングカテゴリを参照してください。

次の例では、すべてのcat、rat、batを値TREEで置き換えます。
data _null_;
      /* Use a pattern to replace all occurrences of cat,      */
      /* rat, or bat with the value TREE.                      */
   length text $ 46;
   RegularExpressionId = prxparse('s/[crb]at/tree/');
   text = 'The woods have a bat, cat, bat, and a rat!';
      /* Use CALL PRXCHANGE to perform the search and replace. */
      /* Because the argument times has a value of -1, the     */
      /* replacement is performed as many times as possible.   */ 
   call prxchange(RegularExpressionId, -1, text);
   put text;
run;
次の出力がログに書き込まれます。
The woods have a tree, tree, tree, and a tree!

関連項目:

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