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

WYS*_*WYS 5 python color-scheme sublimetext2

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

listRegex = re.findall(r'[*][[][[].*', testString)
Run Code Online (Sandbox Code Playgroud)

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

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

Eri*_*ric 6

虽然它没有真正回答你的问题,你可以使用不同的正则表达式:

listRegex = re.findall(r'\*\[\[.*', testString)
Run Code Online (Sandbox Code Playgroud)

或者你可以阻止任何正则表达式高位:

listRegex = re.findall(R'[*][[][[].*', testString)
Run Code Online (Sandbox Code Playgroud)

适当的解决方案

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

<key>name</key>
<string>constant.other.character-class.set.regexp</string>
<key>patterns</key>
<array>
Run Code Online (Sandbox Code Playgroud)
    <dict>
        <key>match</key>
        <string>\[</string>
    </dict>
Run Code Online (Sandbox Code Playgroud)
    <dict>
        <key>include</key>
        <string>#character-class</string>
    </dict>
Run Code Online (Sandbox Code Playgroud)