2016-02-13 173 views
2

我想检查一些字母是否属于俄文字母。我可以用西里尔字母直接比较:检查一些字母是否属于俄文字母

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

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

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

但这个函数不会为UTF-8编码工作。我如何获得UTF-8表中的字母位置?

回答

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 
+0

谢谢DomPazz! – PierreVanStulov

+0

虽然这不会识别出该字符是俄语字母表,但只要确定该字符不是基本编码中的字符即可? (这可能适用于手头的案例,只是觉得值得一提的是它实际上在做什么。) – Joe

2

你应该能够与$HEX.格式识别原始字节码,然后验证基础上(见像this one表,看看什么样的价值观是古代斯拉夫语)。

例如,使用DOM的例子:

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

感谢您的建议Joe! – PierreVanStulov

相关问题