Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 同时使用多个regexp进行测试(用于语法分析)_Javascript_Regex_Parsing - Fatal编程技术网

Javascript 同时使用多个regexp进行测试(用于语法分析)

Javascript 同时使用多个regexp进行测试(用于语法分析),javascript,regex,parsing,Javascript,Regex,Parsing,我正在用JavaScript编写一个简单的语法highlighter,我需要找到一种同时使用多个正则表达式进行测试的方法 这样做的目的是找出哪一个先出现,这样我就可以确定要查找的新表达式集 表达式可能类似于: /是否有任何特殊原因导致您无法将输入标记化,然后测试每个标记的开头,以查看其类型,以便突出显示?我觉得你想得太多了。一个简单的if elseifs级联可以很好地解决这一问题: if (token.startsWith("<%@")) { // paint it red } els

我正在用JavaScript编写一个简单的语法highlighter,我需要找到一种同时使用多个正则表达式进行测试的方法

这样做的目的是找出哪一个先出现,这样我就可以确定要查找的新表达式集

表达式可能类似于:


/是否有任何特殊原因导致您无法将输入标记化,然后测试每个标记的开头,以查看其类型,以便突出显示?我觉得你想得太多了。一个简单的
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!但我可能有点想过头了。你的解决方案是朝着正确方向迈出的一步。谢谢