在C ++ codecvt / locale库中,有一个适当的方面可以用来测试一个字符"是"什么? IE测试一个字符是否是任何形式的换行符,或者表示数字或空格等等?
或者是否必须手动/使用依赖正则表达式?
答案 0 :(得分:2)
是的,使用std::ctype
构面及其is
方法:
std::use_facet<std::ctype<char>>(std::locale()).is(std::ctype_base::digit, '9');
可以找到可用的分类掩码here。
断行字符没有分类类别;为此,您需要将ICU u_getIntPropertyValue
与UCHAR_LINE_BREAK
一起使用并检查U_LB_MANDATORY_BREAK
等。