前のページ|次のページ

COMPRESS関数

元の文字から指定した文字を削除した文字列を返します。

カテゴリ: 文字
制限事項: この関数は、I18Nレベル0準拠しており、SBCSデータ向けに設計されています。この関数をDBCSまたはMBCSデータの処理に使用しないでください。
ヒント: この関数に相当するDBCS関数は、KCOMPRESSです。

構文

COMPRESS(source <, characters> <, modifier(s)>)

必須引数

ソース

文字定数、変数または式を指定します。これらから指定した文字が削除されます。

オプション引数

characters

文字リストを初期化する文字定数、変数または式を指定します。

デフォルトでは、このリスト内の文字がsource引数から削除されます。第3引数にK修飾子を指定すると、このリスト内の文字のみが結果に保持されます。
ヒント
第3引数に他の修飾子を使うことでリストに文字を追加できます。
ヒント
文字のリテラル文字列を引用符で囲みます。

modifier

文字定数、変数または式を指定します。空白でない文字はそれぞれCOMPRESS関数のアクションを変更します。空白は無視されます。修飾子として使用できる文字は次のとおりです。

aまたはA 文字のリストにアルファベット文字を追加します。
cまたはC 文字のリストに制御文字を追加します。
dまたはD 文字のリストに数字を追加します。
fまたはF アンダースコア文字および英文字を文字リストに追加します。
gまたはG 文字のリストにグラフィカル文字を追加します。
hまたはH 文字のリストに水平タブを追加します。
iまたはI 保持する、または削除する文字の大文字と小文字を区別しません。
kまたはK リスト内の文字を削除するのではなく、保持します。
lまたはL 小文字を文字リストに追加します。
nまたはN 数字、アンダースコア文字および英文字を文字リストに追加します。
oまたはO COMPRESS関数が呼び出されるたびに第2引数および第3引数を実行するのではなく、一度だけ実行します。DATAステップ(WHERE句を除く)またはSQLプロシジャでO修飾子を使用すると、第2引数および第3引数が変更されないループでCOMPRESSを呼び出すときに、より迅速に実行できます。
pまたはP 文字のリストに句読点を追加します。
sまたはS 文字のリストに空白文字(空白、水平タブ、垂直タブ、キャリッジリターン、ラインフィード、フォームフィード、NBSP ('A0'x - 10進数のASCIIコードで160))を追加します。
tまたはT 第1引数と第2引数から末尾の空白を取り除きます。
uまたはU 大文字を文字リストに追加します。
wまたはW 印刷可能文字を文字リストに追加します。
xまたはX 文字のリストに16進文字を追加します。
ヒント
modifierが定数の場合、引用符で囲みます。一組の引用符で複数の定数を指定します。modifierを変数または式として表すこともできます。

詳細

返される変数の長さ

DATAステップで、まだ長さが割り当てられていない変数にCOMPRESS関数から値が返される場合、その変数の長さは第1引数の長さに設定されます。

基本

COMPRESS関数には、NULL引数を指定できます。NULL引数は長さがゼロの文字列として扱われます。
引数の数に基づいて、COMPRESS関数は次のように機能します。
引数の数
結果
第1引数のみ。source
引数からすべての空白が削除されます。引数のすべてが空白の場合、結果は長さがゼロの文字列となります。固定長の文字変数に結果を割り当てる場合、その変数の値は定義した長さとなるよう空白が埋め込まれます。
最初の2つの引数。sourceおよびchars
第2引数に現れるすべての文字が結果から削除されます。
3つの引数。sourcecharsおよびmodifier(s)
K修飾子(第3引数に指定)は、第2引数内の文字を結果に保持するか、削除するかを決定します。
COMPRESS関数は、第2引数内の文字に加えて、修飾子で指定される文字を含む文字を保持または削除する文字リストをコンパイルします。たとえば、D修飾子は数字を指定します。次の関数呼び出しは、どちらも結果から数字を削除します。
compress(source, "1234567890");
compress(source, , "d");
数字、プラス記号またはマイナス記号を削除するには、次の関数呼び出しのいずれかを使用します。
compress(source, "1234567890+-");
compress(source, "+-", "d");

例1: ブランクの取り除き

SASステートメントとその結果を次に示します。
SASステートメント
結果
----+----1
a='AB C D ';
b=compress(a);
put b;
 
ABCD

例2: 小文字の取り除き

SASステートメントとその結果を次に示します。
SASステートメント
結果
----+----1----+----2----+----3
x='123-4567-8901 B 234-5678-9012 c';
y=compress(x, 'ABCD', 'l');
put y;
  
123-4567-8901 234-5678-9012

例3: 空白文字の取り除き

SASステートメントとその結果を次に示します。
SASステートメント
結果
----+----1
x='1    2    3    4    5';
y=compress(x, , 's');
put y;
 
12345

例4: リストされた文字の保持

SASステートメントとその結果を次に示します。
SASステートメント
結果
----+----1
x='Math A English B Physics A';
y=compress(x, 'ABCD', 'k');
put y;
 
ABA

例5: 文字列を圧縮して長さ0を返す

SASステートメントとその結果を次に示します。
SASステートメント
結果
----+----1
x=' ';
l=lengthn(compress(x));
put l;
 
0

関連項目:

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