【发布时间】:2019-03-16 20:51:03
【问题描述】:
QRegExp 模式用于捕获 QSyntaxHighlighter 的单引号文本是什么?匹配项应该包含引号,因为我正在构建一个 sql 代码编辑器。
测试模式
string1 = 'test' 和 string2 = 'ajsijd'
到目前为止我已经尝试过:
QRegExp("\'.*\'")
我在这个正则表达式测试器上运行它:https://regex101.com/r/eq7G1v/2 但是当我尝试在 python 中使用该正则表达式时,它可能不起作用,可能是因为我需要转义一个字符?
self.highlightingRules.append((QRegExp("(['])(?:(?=(\\?))\2.)*?\1"), quotationFormat))
我正在使用 Python 3.6 和 PyQt5。
【问题讨论】:
-
它是 QRegExp 特定的问题/问题吗?您能否请求一般的 RegExp 帮助?可能会更有成果!
-
好的,所以实际上这个正则表达式可以解决问题,所以我只用单引号突出显示字符串,但我不能让它在 QRegExp 上工作: (['])(?:(?= (\\?))\2.)*?\1
-
@Aleksei Kiriusvenkovich 试试看:
'[^'\\]*(\\.[^'\\]*)*' -
好吧,正则表达式很好,这个也很好,而且它更短:(')[^\1]*?\1 但是当我将它与 QRegExp 一起使用时它不起作用:QRegExp( "(')[^\1]*?\1")
标签: python python-3.x pyqt pyqt5 qregexp