Javascript 同时使用多个regexp进行测试(用于语法分析)
我正在用JavaScript编写一个简单的语法highlighter,我需要找到一种同时使用多个正则表达式进行测试的方法 这样做的目的是找出哪一个先出现,这样我就可以确定要查找的新表达式集 表达式可能类似于:Javascript 同时使用多个regexp进行测试(用于语法分析),javascript,regex,parsing,Javascript,Regex,Parsing,我正在用JavaScript编写一个简单的语法highlighter,我需要找到一种同时使用多个正则表达式进行测试的方法 这样做的目的是找出哪一个先出现,这样我就可以确定要查找的新表达式集 表达式可能类似于: /是否有任何特殊原因导致您无法将输入标记化,然后测试每个标记的开头,以查看其类型,以便突出显示?我觉得你想得太多了。一个简单的if elseifs级联可以很好地解决这一问题: if (token.startsWith("<%@")) { // paint it red } els
/是否有任何特殊原因导致您无法将输入标记化,然后测试每个标记的开头,以查看其类型,以便突出显示?我觉得你想得太多了。一个简单的if elseif
s级联可以很好地解决这一问题:
if (token.startsWith("<%@")) {
// paint it red
}
else if (token.startsWith("<%--")) {
// paint it green
}
else if (token.startsWith("<!--")) {
// paint it blue
}
else if (token.matches("^<[a-z:-]")) {
// paint it black
}
if(token.startsWith(“ANTLR)是一个优秀的语法开发系统。目前有一个项目要为它构建一个JavaScript后端
我同意Welbog对您的正则表达式问题的回答,但通过查看ANTLR生成的语法,您可能会学到很多关于实现JavaScript语法的知识。虽然这个示例有点简单,但语法高亮显示的内容要复杂一些,动态语法和作用域可以注入其他语法规则……而且stuff!但我可能有点想过头了。你的解决方案是朝着正确方向迈出的一步。谢谢