C++ QRegExp编译时警告
我正在开发一些C++ QRegExp编译时警告,c++,qt,qregexp,C++,Qt,Qregexp,我正在开发一些Qtapp,它的主窗口由QPlainTextEdit子类日志窗口组成,用于输出事件。我有三种类型的消息: 信息消息,表示以[INFO]子字符串开头的QString 警告消息,表示以[Warning]子字符串开头的QString 错误消息,表示以[Error]子字符串开头的QString 现在,我想用QSyntaxHighlighter类实现的是根据这些消息的类型(INFOtype-Qt::DarkBluecolor,WARNINGtype-Qt::DarkYellowcolor,E
Qt
app,它的主窗口由QPlainTextEdit
子类日志窗口组成,用于输出事件。我有三种类型的消息:
[INFO]
子字符串开头的QString
[Warning]
子字符串开头的QString
[Error]
子字符串开头的QString
QSyntaxHighlighter
类实现的是根据这些消息的类型(INFOtype-Qt::DarkBlue
color,WARNINGtype-Qt::DarkYellow
color,ERRORtype-Qt::DarkRed
color)更改这些消息的颜色,下面是代码块,哪些人应该完成任务:
void UeLogWindowTextHighlighter::ueSetupRules()
{
UeHighlightRule* ueRuleInfo=new UeHighlightRule(this);
UeHighlightRule* ueRuleWarning=new UeHighlightRule(this);
UeHighlightRule* ueRuleError=new UeHighlightRule(this);
this->ueInfoStartExpression()->setPattern("^[INFO].\*"); // FIRST WARNING
this->ueWarningStartExpression()->setPattern("^[WARNING].\*"); // SECOND WARNING
this->ueErrorStartExpression()->setPattern("^[ERROR].\*"); // THIRD WARNING
this->ueInfoExpressionCharFormat()->setForeground(Qt::darkGray);
this->ueWarningExpressionCharFormat()->setForeground(Qt::darkYellow);
this->ueErrorExpressionCharFormat()->setForeground(Qt::darkRed);
ueRuleInfo->ueSetPattern(this->ueInfoStartExpression());
ueRuleInfo->ueSetTextCharFormat(this->ueInfoExpressionCharFormat());
this->ueHighlightRules()->append(ueRuleInfo);
ueRuleWarning->ueSetPattern(this->ueWarningStartExpression());
ueRuleWarning->ueSetTextCharFormat(this->ueWarningExpressionCharFormat());
this->ueHighlightRules()->append(ueRuleWarning);
ueRuleError->ueSetPattern(this->ueErrorStartExpression());
ueRuleError->ueSetTextCharFormat(this->ueErrorExpressionCharFormat());
this->ueHighlightRules()->append(ueRuleError);
} // ueSetupRules
但是,当我编译项目时,会收到以下警告:
../../../gui/uelogwindowtexthighlighter.cpp: In member function 'void UeLogWindowTextHighlighter::ueSetupRules()': ../../../gui/uelogwindowtexthighlighter.cpp:58:47: warning: unknown escape sequence: '\*' [enabled by default]
this->ueInfoStartExpression()->setPattern("^[INFO].\*");
^ ../../../gui/uelogwindowtexthighlighter.cpp:59:50: warning: unknown escape sequence: '\*' [enabled by default]
this->ueWarningStartExpression()->setPattern("^[WARNING].\*");
^ ../../../gui/uelogwindowtexthighlighter.cpp:60:48: warning: unknown escape sequence: '\*' [enabled by default]
this->ueErrorStartExpression()->setPattern("^[ERROR].\*");
^
因此,信息没有着色(这是我的怀疑)我的正则表达式出了什么问题?我在跟踪。不必转义Star(*
)。删除\
,或者如果需要\
,则应将其转义并写入双精度(\
)