2013-03-29 7 views
6

Voglio ottenere un'espressione regolare che può corrispondere solo a una stringa composta da caratteri cinesi e senza inglese o altri caratteri. [\ u4e00- \ u9fa5] non funziona affatto e [^ x00-xff] corrisponderebbe alla situazione con caratteri punteggiati o di altra lingua.Come posso abbinare una stringa con solo lettere cinesi usando un'espressione regolare?

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: la domanda riguarda 'boost :: regex', non C++ 11' std :: regex'. – MSalters

+0

@MSalters: abbastanza giusto. –

risposta

0

La regex seguente funziona correttamente.

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

Boost con ICU can use character classes. Penso che tu stia cercando lo script \p{Han}. In alternativa, U + 4E00..U + 9FFF è \p{InCJK_Unified_Ideographs}

Problemi correlati