【问题标题】:Textmate Grammar - Highlight 'STR$' callTextmate 语法 - 突出显示“STR$”调用
【发布时间】:2020-03-19 09:50:55
【问题描述】:

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

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

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

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

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

我试过了

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

但这会导致:

您能否在结尾和单词边界两侧捕获带有特殊字符的单词(不“捕获”边界上的实际字符)?

【问题讨论】:

    标签: regex visual-studio-code vscode-extensions textmate


    【解决方案1】:

    你可以使用

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

    或者

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

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

    (?&lt;!\w) 是一个否定的lookbehind,如果在当前位置的左边有一个字母、数字或下划线,则匹配失败。

    【讨论】:

    • 也感谢您的解释!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多