我有一个sublime文本的问题,通常应该是所有编辑器。当我有这样的正则表达式。
listRegex = re.findall(r'[*][[][[].*', testString)
正则表达式之后的所有文本都会被错误地突出显示,因为[[]
,特别是没有近括号的[
。虽然这个正则表达式的意图是正确的,但编辑器并不知道这一点。
这只是一个我不知道如何应对的烦恼。任何人都知道如何解决这个问题?
答案 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语法荧光笔的一个已知错误,只会影响原始字符串。
顺便说一下,在正则表达式中,您可以通过两种方式匹配特殊字符:
将其括在方括号中:[[]
使用反斜杠转义它:\[
首选第二个,因此您可以将代码更改为:
listRegex = re.findall(r'\*\[\[.*', testString)