仅当关键字不包含特定字符时,正则表达式捕获字符串

时间:2016-01-11 22:18:20

标签: regex syntax-highlighting netlogo

我尝试创建一个正则表达式来捕获netlogo语言的一些关键字,以便为highlight.js创建一个文件。我不是正则表达式的专长,但我尝试这样做,因为此时此语言没有网络语法高亮显示。

我尝试捕获所有([a-zA-Z0-9_\.?=\*!<>:#\+/%\$\^\'&-]*)的正则表达式,但实际上我只想捕获第一行(例如底部的第一行),并排除任何带有特殊字符的关键字。

random --> want to capture only this keyword
#random 
?random
random?
ran?dom
rand#om
random#

最终的正则表达式只需要捕获第一行(random)。其他行是netlogo中变量的授权名称,但不是可识别的关键字。

更新1: 对于每个特殊的正则表达式命令,似乎hightlight需要将/ w转换为// w。

评论(^|\s)(\w+)(?=\s|$)中的整个命题不能直接在hightlight.js中使用。我尝试(^|\\s)(\\w+)(?=\\s|$),但在这种情况下,选择了任何关键字: - /

部分lexemes: '(\\w+)(?=\\s|$)'工作但只捕获用例的部分内容。例如,random#会突出显示。

1 个答案:

答案 0 :(得分:0)

尝试:^(\s*)\w+(\s|$)

在java中,\也许应该写为\\

Regexbuddy中的正则表达式 - 图片:

enter image description here