JavaScript正则表达式;“没有什么可重复的”;错误
我在试图获取代码中的标记以对Minic langauge进行词法分析时出现了这个错误JavaScript正则表达式;“没有什么可重复的”;错误,javascript,regex,Javascript,Regex,我在试图获取代码中的标记以对Minic langauge进行词法分析时出现了这个错误 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
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(/,|*|-|+|=|<|>|!|&|,|/));
document.writeln(“1,23=()9$86,7”。拆分(/,| |=|$|/);
书面文件(“
”);
writeln(“intsum(intx,inty){intz=x+y;}”);
书面文件(“
”);
document.writeln(“int sum(int x,int y){int z=x+y;}”).split(/,|*|-|+|=| |!|&|,|/);
最后一行Uncaught SyntaxError:无效正则表达式:无需重复 您需要转义特殊字符:
/,|\*|-|\+|=|<|>|!|&|,|/
/,|\*|-|\+|=| |!|&|/
需要转义的特殊字符:您需要转义字符
+
和*
,因为它们在正则表达式中有特殊含义。我还非常怀疑您是否需要最后一个|
——这会将空字符串添加到匹配的元素中,从而得到每个元素一个字符的数组
下面是固定正则表达式:
/\*|-|\+|=|<|>|!|&|,/
/\*|-|\+|=| |!|&/
但是,您可以通过使用字符类使其更可读,甚至更快:
/[-,*+=<>!&]/
/[-,*+=!&]/
演示:
js>“整数和(整数x,整数y){intz=x+y;}”。拆分(/[-,*+=!&]/);
[‘整数和(整数x’,
'int y){int z',
“x”,
'y;}']
-
不是特殊字符,除非在[]
中使用的位置不是第一个/最后一个字符。
js> "int sum ( int x , int y ) { int z = x + y ; }".split(/[-,*+=<>!&]/);
[ 'int sum ( int x ',
' int y ) { int z ',
' x ',
' y ; }' ]