我尝试创建一个正则表达式来捕获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#
会突出显示。