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)
是一个负向后视,如果紧靠当前位置的左侧有字母、数字或下划线,则匹配失败。
我有这个正则表达式来捕获 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)
是一个负向后视,如果紧靠当前位置的左侧有字母、数字或下划线,则匹配失败。