5

我对通常应该是所有编辑器的崇高文本有疑问。当我有这样的正则表达式时。

listRegex = re.findall(r'[*][[][[].*', testString)

正则表达式之后的所有文本都将错误地突出显示,因为[[], 特别是[没有右括号。虽然这个正则表达式的意图是正确的,但编辑器并不知道这一点。

这只是我不知道如何处理的烦恼。有人知道怎么修这个东西吗?

4

2 回答 2

6

虽然它并不能真正回答您的问题,但您可以使用不同的正则表达式:

listRegex = re.findall(r'\*\[\[.*', testString)

或者您可以防止任何正则表达式高亮:

listRegex = re.findall(R'[*][[][[].*', testString)

适当的解决方案

在第 266 行添加以下内容.../Packages/Python/Regular Expressions (Python).tmLanguage(第一个和第三个块是上下文):

<key>name</key>
<string>constant.other.character-class.set.regexp</string>
<key>patterns</key>
<array>
    <dict>
        <key>match</key>
        <string>\[</string>
    </dict>
    <dict>
        <key>include</key>
        <string>#character-class</string>
    </dict>
于 2012-11-03T16:39:26.727 回答
2

这是 Sublime Text 的 Python Syntax Highlighter 的一个已知错误,它只影响原始字符串。

顺便说一句,在正则表达式中,您可以通过两种方式匹配特殊字符:

  1. 将其括在方括号中:[[]

  2. 用反斜杠转义它:\[

第二个是首选,因此您可以将代码更改为:

listRegex = re.findall(r'\*\[\[.*', testString)
于 2012-11-03T16:40:07.647 回答