我在尝试获取代码时会出现此错误,以便对Minic语言进行词法分析!
document.writeln("1,2 3=()9$86,7".split(/,| |=|$|/));
document.writeln("<br>");
document.writeln("int sum ( int x , int y ) { int z = x + y ; }");
document.writeln("<br>");
document.writeln("int sum ( int x , int y ) { int z = x + y ; }".split(/,|*|-|+|=|<|>|!|&|,|/));
我在最后一行的调试器上出错Uncaught SyntaxError:无效的正则表达式:没有什么可重复!!
答案 0 :(得分:6)
答案 1 :(得分:4)
您需要转义字符+
和*
,因为它们在正则表达式中具有特殊含义。我也非常怀疑你想要最后一个|
- 这会将空字符串添加到匹配的元素中,从而得到一个每个元素有一个char的数组。
这是固定的正则表达式:
/\*|-|\+|=|<|>|!|&|,/
但是,通过使用字符类,您可以使其更具可读性,甚至更快:
/[-,*+=<>!&]/
演示:
js> "int sum ( int x , int y ) { int z = x + y ; }".split(/[-,*+=<>!&]/);
[ 'int sum ( int x ',
' int y ) { int z ',
' x ',
' y ; }' ]