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

QSyntaxHighlighter highlight part of match with QRegExp

本文关键字:QRegExp 显示 QSyntaxHighlighter      更新时间:2023-10-16

我需要匹配如下字符串:

  1. XXX

但是"1."answers"XXX"都突出显示了,我目前使用的正则表达式如下:

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

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

非常感谢!

您的正则表达式应该类似于:

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

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

这样,您就可以在原始子字符串中找到该子字符串的索引,以设置高亮显示。