写一个很好的突出显示功能

时间:2012-10-11 20:42:55

标签: regex qt

我试图实施一个"突出显示"用于增强我正在进行的项目中的搜索功能。它应该在较大的QString中突出显示(应用css背景颜色范围标记)所有出现的搜索项。现在,要突出显示的匹配项由以下Regexp确定:

QRegExp reg("(\\b)(" + term + ")(\\b)|(.,:;'\"\')");

正则表达式不区分大小写,并且将匹配" term"的所有实例。后跟单词边界或标点符号。

现在,突出显示代码是一个简单的QString :: replace API调用:

entry=entry.replace(reg,"<span style=\"background-color: " + color + "\">" + term  + "</span>");

这种方法有效但仍然有问题;最重要的问题是它忽略了案件;如果匹配是&#34; Apple&#34;突出显示的术语将说&#34; apple&#34;。如果匹配是句子中的第一个单词,则会出现问题。

为了修复这个错误,我想把长QString分成QStringList数组,并且一次搜索regexp匹配一个槽。是否有更好/更快的方式来处理这项工作,或者我应该怎么做呢?

0 个答案:

没有答案