I'm trying to highlight single-line comments in VBScript using QSyntaxHighlighter in Qt 5.14.2. All example code I was able to find uses QRegExp instead of QRegularExpression, where a simple pattern like '[^
]*
or '.*$
seems to do the job.
However, this doesn't work with QRegularExpression (which is required by QSyntaxHighlighter) and both of these match everything following '
including all newlines. What am I doing wrong?
Relevant code:
auto regexOptions = QRegularExpression::CaseInsensitiveOption;
HighlightingRule rule;
rule.pattern = QRegularExpression(QStringLiteral("'[^
]*"), regexOptions);
rule.format = format_SinglelineComment;
highlightingRules.append(rule);
Update: Turns out this is not an issue with regex, but rather with encoding. When I retrieve the TextEdit contents via ->toPlainText().toStdString()
, I get a properly formatted string with
for line breaks. If I take the text being passed to highlightBlock
and do .toStdString()
on it, I get a۬
instead of
, indicating an encoding issue. Any ideas how to solve it?
question from:
https://stackoverflow.com/questions/65860125/matching-a-single-line-comment-in-qsyntaxhighlighter-with-qregularexpression 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…