Sublime Text:为什么语法高亮中的正则表达式不起作用?

Sublime Text:为什么语法高亮中的正则表达式不起作用?

在 Sublime Text 3 中,默认的语法高亮规则SELECT可以很好地绘制位于同一行的 SQL,但如果位于下一行则不行:

单行 SQL 字符串 对比 多行 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 字符串上的语法突出显示吗?

相关内容