2013-03-29 2 views
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 
+0

@NicolBolas : 질문은'boost :: regex'에 관한 것이지 C++ 11'std :: regex'에 관한 것이 아닙니다. – MSalters

+0

@MSalters : 충분합니다. –

답변

0

다음 정규 표현식이 정상적으로 작동합니다.

boost::wregex reg(L"^[\u4e00-\u9fa5]+"); 
2

부스트와 ICU can use character classes. 나는 \p{Han} 스크립트를 찾고 있다고 생각합니다. 또는 U + 4E00..U + 9FFF가 \p{InCJK_Unified_Ideographs}

관련 문제