2011-12-23 2 views
3

Я проверил документ Qt, он полностью поддерживает сопоставление юникода с \ xhhhh, но таким образом я могу только соответствовать известным юникодам, как я могу распознать строку unicode?Как совместить последовательный юникод с QRegExp?

Спасибо!

@update:

QString line; 
if (line.indexOf(QRegExp ("\\p{L}"))) != -1) 
{ 
/// blabla 
} 

Это не работает, я не видел поток вошел в if

ответ

0

Я не знаю, Qt регулярно как выражения, но в соответствии с doc

QRegExp смоделирован на языке регулярного языка Perl. Он полностью поддерживает Unicode.

Я бы предположил, что он должен поддерживать Unicode Properties, Scripts и Blocks. Подробный обзор см. В разделе www.regular-expressions.info.

Вы можете, например. используйте письмо с кодом \p{L}, чтобы соответствовать коду с кодом юникода. Для того, чтобы соответствовать строку, состоящую только из таких кодовых точек использовать что-то вроде этого

^\p{L}+$ 
+0

смотрите мое обновление ;-P – daisy

+0

Если строка имеет букву в нем, ваше выражение должно соответствовать (я предполагаю, что QRegExp позволяет этот синтаксис). Я понятия не имею, соответствует ли ваш синтаксис регулярному выражению в отношении строки и каково содержание вашей строки. Протестируйте его строкой, в которой нет экзотической буквы, а в ней «нормальная» буква и проверьте, соответствует ли она этому. – stema

Смежные вопросы