Textmate语法-突出显示“ STR $”电话

时间:2019-11-23 15:34:17

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

我有这个正则表达式,用于捕获TextMate(与代码)语法中的一些标准lib调用:

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

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

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

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

我尝试了

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

但这会导致:

wrongBracketHighlighting

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

1 个答案:

答案 0 :(得分:1)

您可以使用

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

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

(?!\w)是一个否定的超前查询,如果当前位置右侧紧邻字母,数字或下划线,则匹配失败。

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