Regex Textmate语法-突出显示';STR$';呼叫

Regex Textmate语法-突出显示';STR$';呼叫,regex,visual-studio-code,vscode-extensions,textmate,Regex,Visual Studio Code,Vscode Extensions,Textmate,我用这个正则表达式捕获TextMate(vs代码)语法中的一些标准库调用: (?i)\b(sin | cos | tan)\b 现在,在像str$(5)这样的调用中,我想捕获str$。你不能这样做: (?i)\b(sin | cos | tan | str\$)\b 因为结尾的单词边界(我想是吧?) 我试过了 (?i)\b(sin | cos | tan | str\$)(|\() 但这导致: 你能捕获一个在词尾和词边界两边都有特殊字符的单词吗(不“捕获”边界上的实际字符)?你可以使用 (?i

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

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

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

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

因为结尾的单词边界(我想是吧?)

我试过了

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

但这导致:

你能捕获一个在词尾和词边界两边都有特殊字符的单词吗(不“捕获”边界上的实际字符)?

你可以使用

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

(?i)(?
(?!\w)
是一个负前瞻,如果当前位置的右侧有字母、数字或下划线,则匹配将失败


(?是一个反向查找,如果在当前位置的左侧有字母、数字或下划线,则匹配将失败。

谢谢您的解释!
(?i)(?<!\w)(sin|cos|tan|str\$)(?!\w)
    ^^^^^^^                   ^^^^^