QSyntaxHighlighter выделить часть матча с QRegExp - PullRequest
0 голосов
/ 01 июля 2011

Мне нужно было найти строку, подобную следующей:

  1. XXX

Но оба "1". и "XXX" выделено, и в настоящее время я использую следующее регулярное выражение:

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

Как я могу выделить только XXX в этом случае?

Большое спасибо!

1 Ответ

2 голосов
/ 01 июля 2011

Ваше регулярное выражение должно быть примерно таким:

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

, чтобы вы могли захватить XXX в своем регулярном выражении. Затем вы получаете все совпадения, используя capturedTexts(). Строка, которую вы ищете, должна быть последним индексом, поскольку первый элемент - это вся строка, которая соответствует, второй - число и точка, если она найдена, или строка XXX. Если число присутствует, XXX будет в третьей строке.

Имея это, вы можете найти индекс этой подстроки внутри исходной, чтобы настроить подсветку.

...