Sublime Text在python中突出显示正则表达式的语法泄漏到周围的代码中

时间:2012-11-03 15:54:24

标签: python sublimetext2 color-scheme

我有一个sublime文本的问题,通常应该是所有编辑器。当我有这样的正则表达式。

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

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

这只是一个我不知道如何应对的烦恼。任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:2)

这是Sublime Text的Python语法荧光笔的一个已知错误,只会影响原始字符串。

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

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

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

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

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