- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为 QSyntaxHighlighter 捕获引用文本的 QRegExp 模式是什么?
测试图案
"one" or "two" or "three"
到目前为止我已经尝试过:
QRegExp rx("\\0042.*\\0042");
QRegExp rx("(\\0042).*?\\1");
最后一个模式在 regexpal.com 上成功,但在 QRegExp 类中失败。
最佳答案
编辑:如果您查看 Syntax Highlighter Example ,里面已经有这个了。
http://qt-project.org/doc/qt-4.8/richtext-syntaxhighlighter-highlighter-cpp.html
quotationFormat.setForeground(Qt::darkGreen);
rule.pattern = QRegExp("\".*\"");
rule.format = quotationFormat;
highlightingRules.append(rule);
只需从 Qt 的荧光笔示例中复制大部分代码,您就应该设置好了。
在 Qt 对 RegEx 的变体的描述中,它说:
Note: Quantifiers are normally "greedy". They always match as much text as they can. For example, 0+ matches the first zero it finds and all the consecutive zeros after the first zero. Applied to '20005', it matches'20005'. Quantifiers can be made non-greedy, see setMinimal().
如果您使用setMinimal(true)
来获得懒惰匹配而不是贪婪匹配的效果,您可以实现它。其他正则表达式评估器使用类似 *?
或 +?
的东西来执行惰性匹配。有时我使用 gskinner's regex engine来测试我的表情。
以下是您要查找的代码。它主要基于给定的示例 here .
#include <QCoreApplication>
#include <QRegExp>
#include <QDebug>
#include <QStringList>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString str = "\"one\" or \"two\" or \"three\"";
QRegExp rx("\".*\"");
rx.setMinimal(true);
int count = 0;
int pos = 0;
while ((pos = rx.indexIn(str, pos)) != -1) {
++count;
pos += rx.matchedLength();
qDebug() << rx.cap();
}
return a.exec();
}
希望对您有所帮助。
关于c++ - QRegExp 和 QSyntaxHighlighter 的双引号文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16073401/
我正在使用QPlainTextEdit和QSyntaxHighlighter创建自定义代码编辑器,但遇到了故障。我想保留语法高亮显示,即使在选择中也是如此。但是,所选内容的颜色(环境颜色)会覆盖QSy
我正在使用 Qt 的 QSyntaxHighlighter 为 QML TextEdit 中的一些类似 C 的语法着色 除了多行注释,一切都很好。 我是这样检测它们的: void highlightB
我正在为软件中的文档编写一个搜索栏。问题是:仅在我手动调整窗口大小(例如通过拖动一个角)后才会出现突出显示。 该文档是在 QTextDocument 中的 html 格式,我使用 QSyntaxHig
如何让 QSyntaxHighlighter 语法高亮 ascii 字符,如 @ 或 #?这是我当前的代码: Highlighter::Highlighter(QTextDocument *paren
据我所知,我必须从 QSyntaxHighlighter 继承并重写 highlightBlock() 来为我的 QTextEdit 创建荧光笔。 但是,我只能在highlightBlock()中得到
问题:我想为带有附加标签的文本实现一个文本编辑小部件。 我希望某些标签在某些情况下不可见,以免分散用户的注意力。 环境:我正在使用 PyQt并且更喜欢使用 QPlainTextWidget和 QSyn
我正在使用 Qt 开发语法荧光笔,我想在其上添加单元测试以检查格式是否得到了很好的应用。但我没能按格式划分块。我使用 QTextBlock 和 QTextFragment 但它在 QTextFragm
如标题所示,突出显示似乎不适用于创建 QTextEdit 的表单。我的 QSyntaxHighlighter 派生类是来自 Qt docs 的那个和我的代码(不起作用的代码): ui->setupUi
我已经编写了一个小的 Python PyQt4 程序来语法高亮 QPlainTextEdit 字段中的 MySQL 源代码。以下代码用于正确地对 MySQL 文本进行颜色编码。 如果有人编辑明文字段,
QtGui.QSyntaxHighlighter 的 highlightBlock(self, qtext) 将我的 QTextEdit 小部件中的每一行视为不同的 block ( qtext).这会
我写了两个语法高亮:一个用于 CSS,一个用于 HTML。 他们工作得很好。 但是,我想在 HTML 代码中(在
QRegExp 模式用于捕获 QSyntaxHighlighter 的单引号文本是什么?匹配项应包含引号,因为我正在构建一个 sql 代码编辑器。 测试模式 string1 = 'test' and
QRegExp 模式用于捕获 QSyntaxHighlighter 的单引号文本是什么?匹配项应包含引号,因为我正在构建一个 sql 代码编辑器。 测试模式 string1 = 'test' and
也许我只是愚蠢,但我已经阅读了此处的 qt richtext 演示文档 (https://doc.qt.io/archives/qt-4.7/richtext-syntaxhighlighter.ht
为 QSyntaxHighlighter 捕获引用文本的 QRegExp 模式是什么? 测试图案 "one" or "two" or "three" 到目前为止我已经尝试过: QRegExp rx("
我需要匹配如下字符串: XXX 但都是“1”。并且“XXX”被突出显示,我目前正在使用以下正则表达式: QRegExp("^\s+(\d+\.)?\s+\b[A-Z]{2,}\b") 在这种情况下,我
我正在使用 QSyntaxHighlighter 来突出显示 QTextEdit 中的一段文本。文本看起来像我期望的那样,在显示屏上的 QTextEdit 中带有适当的突出显示。如果我随后调用 QTe
我的 QML 文件中有一个 TextEdit,我有一个 QSyntaxHighlighter C++ 类。我想在 C++ 类中指定高亮逻辑并将其应用于 TextEdit,但我不确定如何在 QML 对象
我是一名优秀的程序员,十分优秀!