QSyntaxHighlighter突出显示与QRegExp匹配的部分内容

时间:2011-07-01 04:09:57

标签: c++ qt4 qt4.7

我需要匹配如下字符串:

  1. XXX
  2. 但两者都是“1”。和“XXX”突出显示,我正在使用以下正则表达式:

    QRegExp(“^ \ s +(\ d + \。)?\ s + \ b [A-Z] {2,} \ b”)

    在这种情况下,如何仅突出显示XXX?

    非常感谢!

1 个答案:

答案 0 :(得分:2)

你的正则表达式应该是这样的:

QRegExp ("^\s+(\d+\.)?\s+(\b[A-Z]{2,}\b)")

因此您可以在正则表达式中捕获XXX。然后,使用capturedTexts()检索所有匹配项。您所追求的字符串应该是最后一个索引,因为第一个项目是匹配的整个字符串,第二个字符串将是数字和点(如果找到)或字符串XXX。如果存在数字,则XXX将位于第三个字符串中。

有了这个,你可以在原来的子串中找到这个子串的索引来设置你的突出显示。