2

一部の文字がロシア語のアルファベットに属していることを確認したい。キリル文字との直接比較でそれを行うことができます:

letter in ('А', 'Б', 'В', 'Г', 'Д', 'Ж', ...)

もっと簡単なアプローチはありますか?たとえば、英語のアルファベットの場合、rank() 関数を使用できます。

rank('A') <= rank(letter) <= rank('z')

ただし、この関数は UTF-8 エンコーディングでは機能しません。UTF-8 テーブルで文字の位置を取得するにはどうすればよいですか?

4

2 に答える 2

2

機能を利用できると思いますBASECHAR。これにより、文字が Unicode エスケープに変換されます。

data test;
input char $;
datalines;
Б
Г
Д
Ж
a
b
c
;
run;

data test;
set test;
ok = (char=basechar(char,'ESC'));
put char= ok=;
run;

戻り値:

char=Б ok=0
char=Г ok=0
char=Д ok=0
char=Ж ok=0
char=a ok=1
char=b ok=1
char=c ok=1
于 2016-02-13T14:43:11.543 に答える
2

$HEX.生のバイトコードをフォーマットで識別し、それに基づいて検証できるはずです (キリル文字の値を 確認するには、このような表を参照してください)。

たとえば、Dom の例を使用すると、次のようになります。

data test;
input char $;
put char= $HEX4.;
datalines;
Б
Г
Д
Ж
a
b
c
;
run;
于 2016-02-13T16:52:39.543 に答える