检查某些字母是否属于俄语字母表

Check that some letter belongs to Russian alphabet

我想检查一些字母是否属于俄语字母表。我可以通过与西里尔字母直接比较来做到这一点:

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

有没有更简单的方法?例如。对于英文字母,我可以使用 rank() 函数:

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

但此功能不适用于 UTF-8 编码。我怎样才能得到字母在 UTF-8 table 中的位置?

我相信您可以使用 BASECHAR 功能。这会将字符转换为其 unicode 转义字符。

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

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

Returns:

char=Б ok=0
char=Г ok=0
char=Д ok=0
char=Ж ok=0
char=a ok=1
char=b ok=1
char=c ok=1

您应该能够识别具有 $HEX. 格式的原始字节码,然后基于该格式进行验证(参见 table 之类的 this one 以查看哪些值是西里尔字母) .

例如,使用Dom的例子:

data test;
input char $;
put char= $HEX4.;
datalines;
Б
Г
Д
Ж
a
b
c
;
run;