在 Sublime Text 3 中,默认的语法高亮规则SELECT
可以很好地绘制位于同一行的 SQL,但如果位于下一行则不行:
对比
看完之后这个问题我打开了PHP包(这是一个php项目),查看了语法规则(PHP.tmLanguage):
<dict>
<key>begin</key>
<string>"\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\b)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.php</string>
</dict>
</dict>
据我所知,正则表达式是正确的,但我仍然在 regex101 中测试过。它SELECT
确实能很好地捕获那里的内容,因此我认为实际的正则表达式没有任何问题。
知道如何使多行 SQL 字符串上的语法突出显示吗?