6

我想得到一个正则表达式,它只能匹配一个由汉字组成的字符串,而没有英文或任何其他字符。[\u4e00-\u9fa5] 根本不起作用,并且 [^x00-xff] 将匹配带有标点符号或其他语言字符的情况。

boost::wregex reg(L"\\w*");
bool b = boost::regex_match(L"我a", reg);    // expected to be false
b = boost::regex_match(L"我,", reg);         // expected to be false
b = boost::regex_match(L"我", reg);          // expected to be true
4

2 回答 2

3

Boost with ICU可以使用字符类。我认为您正在寻找\p{Han}脚本。或者,U+4E00..U+9FFF 是\p{InCJK_Unified_Ideographs}

于 2013-03-29T08:07:30.077 回答
1

以下正则表达式工作正常。

boost::wregex reg(L"^[\u4e00-\u9fa5]+");
于 2013-03-29T08:34:30.587 回答