在locale / codecvt中是否有适当的方面来测试字符细节

时间:2014-08-21 11:13:57

标签: c++11 unicode locale codecvt

在C ++ codecvt / locale库中,有一个适当的方面可以用来测试一个字符"是"什么? IE测试一个字符是否是任何形式的换行符,或者表示数字或空格等等?

或者是否必须手动/使用依赖正则表达式?

1 个答案:

答案 0 :(得分:2)

是的,使用std::ctype构面及其is方法:

std::use_facet<std::ctype<char>>(std::locale()).is(std::ctype_base::digit, '9');

可以找到可用的分类掩码here

断行字符没有分类类别;为此,您需要将ICU u_getIntPropertyValueUCHAR_LINE_BREAK一起使用并检查U_LB_MANDATORY_BREAK等。