【发布时间】:2016-01-11 22:18:19
【问题描述】:
我尝试创建一个正则表达式来捕获一些 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: 对于每个特殊的正则表达式命令,似乎需要将 /w 转换为 //w。
评论(^|\s)(\w+)(?=\s|$) 中的整个命题不能直接在hightlight.js 中起作用。我尝试(^|\\s)(\\w+)(?=\\s|$),但在这种情况下,选择了任何关键字:-/
部分lexemes: '(\\w+)(?=\\s|$)' 工作但仅捕获部分用例。例如,random# 会突出显示。
【问题讨论】:
-
你尝试的正则表达式是什么?请将其发布在问题正文中。
-
哎呀,我更正了帖子
-
在我看来你需要像
(^|\s)(\w+)(?=\s|$)这样的东西。访问 Capture Group 1,您将获得您的价值。 -
是的,它适用于 regex101 网站,但不适用于 highlighter.js lexeme regex parser here
-
我直接在github上提问,完成后我在这里发布答案。
标签: regex syntax-highlighting netlogo