- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
QRegExp 模式用于捕获 QSyntaxHighlighter 的单引号文本是什么?匹配项应包含引号,因为我正在构建一个 sql 代码编辑器。
测试模式
string1 = 'test' and string2 = 'ajsijd'
到目前为止我已经尝试过:
QRegExp("\'.*\'")
我让它在这个正则表达式测试器上工作:https://regex101.com/r/eq7G1v/2但是当我尝试在 python 中使用该正则表达式时,它不起作用可能是因为我需要转义字符?
self.highlightingRules.append((QRegExp("(['])(?:(?=(\\?))\2.)*?\1"), quotationFormat))
我正在使用 Python 3.6 和 PyQt5。
最佳答案
我不是正则表达式专家,但使用 C++ answer
要检测双引号之间的文本,请将其更改为单引号,我发现它有效:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class SyntaxHighlighter(QtGui.QSyntaxHighlighter):
def __init__(self, parent=None):
super(SyntaxHighlighter, self).__init__(parent)
keywordFormat = QtGui.QTextCharFormat()
keywordFormat.setForeground(QtCore.Qt.darkBlue)
keywordFormat.setFontWeight(QtGui.QFont.Bold)
keywordPatterns = ["'([^'']*)'"]
self.highlightingRules = [(QtCore.QRegExp(pattern), keywordFormat)
for pattern in keywordPatterns]
def highlightBlock(self, text):
for pattern, _format in self.highlightingRules:
expression = QtCore.QRegExp(pattern)
index = expression.indexIn(text)
while index >= 0:
length = expression.matchedLength()
self.setFormat(index, length, _format)
index = expression.indexIn(text, index + length)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
editor = QtWidgets.QTextEdit()
editor.append("string1 = 'test' and string2 = 'ajsijd'")
highlighter = SyntaxHighlighter(editor.document())
editor.show()
sys.exit(app.exec_())
关于python - QRegExp 和 QSyntaxHighlighter 的单引号文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52765697/
我正在使用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 对象
我是一名优秀的程序员,十分优秀!