Textmate 语法 - 突出显示 'STR$' 调用

Textmate Grammar - Highlight 'STR$' call

我有这个正则表达式来捕获 TextMate(vs 代码)语法中的一些标准库调用:

(?i)\b(sin|cos|tan)\b

现在,在 str$(5) 这样的调用中,我想捕获 str$。你不能这样做:

(?i)\b(sin|cos|tan|str$)\b

因为词尾边界(我想?)

我试过了

(?i)\b(sin|cos|tan|str$)( |\()

但这会导致:

你能捕捉到一个在词尾和词边界两边都有特殊字符的词吗(没有 "capturing" 边界上的实际字符)?

您可以使用

(?i)\b(sin|cos|tan|str$)(?!\w)
                         ^^^^^^

或者

(?i)(?<!\w)(sin|cos|tan|str$)(?!\w)
    ^^^^^^^                   ^^^^^

(?!\w) 是一个否定前瞻,如果紧靠当前位置右侧有字母、数字或下划线,则匹配失败。

(?<!\w) 是一个负向后视,如果紧靠当前位置的左侧有字母、数字或下划线,则匹配失败。