Prism:匹配不以dot或:字符开头的语言类型

时间:2016-06-14 21:58:43

标签: javascript regex

我正在使用自定义语言扩展Prism,我想突出显示类型(int,float,bool)。

我希望匹配不以点或符号开头的字符串。

我已经尝试过单独使用正则表达式,但无法使其正常工作,所以我可能必须使用Prism's lookbehind parameter,但我无法正常工作。

float JsValue.float
float JsValue:float(float testFloat)
int JsValue.int
int JsValue:int(int testInt)

下面的正则表达式捕获了我想要的一切。

/\b(int|bool|float)\b/

下面的正则表达式(感谢@anubhava)捕获了我想要的内容,但也捕获了函数名后面的“(”字符。

/(?:^|[^:.])\b(int|bool|float)\b/

由于

1 个答案:

答案 0 :(得分:1)

reference you linked to州:

  

<强>回顾后:
  此选项可减轻JavaScript缺乏外观。 当设置为true时,匹配此令牌时,正则表达式模式中的第一个捕获组将被丢弃,因此它有效地表现得好像是后视。

实际上,它是PCRE \K operator的实现。

所以,使用

/(^|[^:.])\b(int|bool|float)\b/
 ^^^^^^^^^

其中(^|[^:.])捕获组。同样设置lookbehind: true