Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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:拆分多个分隔符的字符串,但也将分隔符作为单独的标记保留_Javascript_Node.js - Fatal编程技术网

javascript:拆分多个分隔符的字符串,但也将分隔符作为单独的标记保留

javascript:拆分多个分隔符的字符串,但也将分隔符作为单独的标记保留,javascript,node.js,Javascript,Node.js,我想拆分字符串,但希望将令牌和拆分器作为单独的令牌保留,并希望返回一个数组: elt(​a,b,c)" => 0 = "elt" 1 = "(" 2 = "a" 3 = "," 4 = "b" 5 = "," 6 = "c" 7 = ")" 到目前为止,我在这里: string = "elt(a, b, c)" string.split(new RegExp('[-+(),*/:? ]', 'g')) 0 = "elt" 1 = "a" 2 = "" 3 = "b" 4 = "

我想拆分字符串,但希望将令牌和拆分器作为单独的令牌保留,并希望返回一个数组:

elt(​a,b,c)" => 
0 = "elt"
1 = "("
2 = "a"
3 = ","
4 = "b"
5 = ","
6 = "c"
7 = ")"

到目前为止,我在这里:

string = "elt(a, b, c)" 
string.split(new RegExp('[-+(),*/:? ]', 'g'))


0 = "elt"
1 = "a"
2 = ""
3 = "b"
4 = ""
5 = "c"
6 = ""

我想将分隔符作为数组传递,如:
separators=['+'、'、'、'>>>='、'>>='、'>>='、'您可以在正则表达式中使用捕获组来保存令牌:

string.split(/([-+(),*/:? ])/g)
              ^            ^
              |___ group __|
输出:

[
  'elt', '(', 'a', ',',
  '',    ' ', 'b', ',',
  '',    ' ', 'c', ')',
  ''
]
您还可以轻松删除空字符串:

string.split(/([-+(),*/:? ])/g).filter(Boolean)

尝试使用lookarounds进行拆分:

var string=“elt(a,b,c)”;

var parts=string.split(/(?如果分隔符是多个字符,会发生什么情况?例如,“>>>=”是分隔符。我假设我可以将分隔符作为一个数组传递,比如
操作符=['>>>=','>>=',“>>=”,“你也可以这样做,只是不要在正则表达式中使用字符集,而是使用
>
,而不是
>(>>>=>=|