Qt 阿拉伯文本段落
给定字符串:Qt 阿拉伯文本段落,qt,arabic,qstring,qregexp,Qt,Arabic,Qstring,Qregexp,给定字符串: QString unformatted = "Some non arabic text" "بعض النصوص العربية" "Another non arabic text" "النص العربي آخر"; 如何使用QRegExp或其他方式获得以下结果: "<p>Some non arabic text</p>" "<p dir='rtl'>بعض النصوص العربية</p>" "&l
QString unformatted =
"Some non arabic text"
"بعض النصوص العربية"
"Another non arabic text"
"النص العربي آخر";
如何使用QRegExp
或其他方式获得以下结果:
"<p>Some non arabic text</p>"
"<p dir='rtl'>بعض النصوص العربية</p>"
"<p>Another non arabic text</p>"
"<p dir='rtl'>النص العربي آخر</p>";
“一些非阿拉伯语文本”
“ؼ
“另一个非阿拉伯语文本
”
“㶈㶈㶈㶈ع㶒㵖㵖㵖㵖㵖㵖㵖㵖
”;
谢谢 用阿拉伯语表达式分隔的函数:
QString split_arabic(QString text){
QRegExp rx("[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF][ \u0600-\u065F\u066A-\u06EF\u06FA-\u06FF]+");
int pos = 0;
QStringList list;
while ((pos = rx.indexIn(text, pos)) != -1) {
list << rx.cap(0);
pos += rx.matchedLength();
}
for(int i=0; i < list.length(); i++){
QString str = list.at(i);
text.replace(str, "<p dir='rtl'>"+str+"</p>");
}
return text;
}
QString拆分\u阿拉伯语(QString文本){
QRegExp rx(“[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF][\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF]+”;
int pos=0;
QStringList表;
而((pos=rx.indexIn(text,pos))!=-1){
列出使用正则表达式提供模式匹配的QRegExp类。正则表达式或“regexp”,是用于匹配文本中的子字符串的模式。这在许多上下文中都很有用,例如验证:regexp可以测试子字符串是否满足某些条件,例如是整数或不包含空格。搜索:regexp提供比简单子字符串匹配更强大的模式匹配,例如匹配单词mail、letter或correct中的一个搜索和替换:regexp可以用不同的子字符串替换所有出现的子字符串,例如,将所有出现的&with&;替换为&with&;,但后面已经跟有amp;。字符串拆分:regexp可用于标识字符串拆分的位置rt,例如拆分制表符分隔的字符串。请阅读:搜索[非阿拉伯语块]并替换为[非阿拉伯语块],搜索[阿拉伯语块]并替换为[阿拉伯语块]
。是否可能?非常感谢@eyllanesc!
QString unformatted =
"Some non arabic text"
"بعض النصوص العربية"
"Another non arabic text"
"النص العربي آخر";
qDebug()<<unformatted;
qDebug()<<split_arabic(unformatted);
"Some non arabic textبعض النصوص العربيةAnother non arabic textالنص العربي آخر"
"Some non arabic text<p dir='rtl'>بعض النصوص العربية</p>Another non arabic text<p dir='rtl'>النص العربي آخر</p>"