仅当关键字不包含特定字符时正则表达式捕获字符串
regex capture string only if keyword does not contain specific character
我尝试创建一个正则表达式来捕获 netlogo 语言的一些关键字,以便为 highlight.js 创建一个文件。我不是正则表达式专家,但我尝试这样做,因为目前没有针对该语言的 Web 语法荧光笔。
我尝试了一个捕获所有 ([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|$)
in java ,\
可能应该写成 \
Regexbuddy-图片中的正则表达式:
我尝试创建一个正则表达式来捕获 netlogo 语言的一些关键字,以便为 highlight.js 创建一个文件。我不是正则表达式专家,但我尝试这样做,因为目前没有针对该语言的 Web 语法荧光笔。
我尝试了一个捕获所有 ([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|$)
in java ,\
可能应该写成 \
Regexbuddy-图片中的正则表达式: