Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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_Regex - Fatal编程技术网

Javascript 在特定值上拆分字符串,但保留分隔符,但在执行此操作时不将其附加到任何内容

Javascript 在特定值上拆分字符串,但保留分隔符,但在执行此操作时不将其附加到任何内容,javascript,regex,Javascript,Regex,我到处找了,但似乎没有解决这个问题的办法。 假设给我一个字符串,其中包含如下文本: jx():{ww.}55<<;<5<>=-[]+*/"hrw 7 n t";fizz buzz jx():{ww.}55直接matching你想要的东西通常比splitting你想要的东西容易得多 var str = 'jx():{ww.}55<<;<5<>=-[]+*/"hrw 7 n t";fizz buzz'; var regex = /"[

我到处找了,但似乎没有解决这个问题的办法。 假设给我一个字符串,其中包含如下文本:

jx():{ww.}55<<;<5<>=-[]+*/"hrw  7 n t";fizz buzz

jx():{ww.}55直接
match
ing你想要的东西通常比
split
ting你想要的东西容易得多

var str = 'jx():{ww.}55<<;<5<>=-[]+*/"hrw  7 n t";fizz buzz';
var regex = /"[^"]*"|<<|&&|\|\||\(|\)|\{|\}|\[|\]|<|>|:|;|\.|=|-|\*|\+|\/|\w+/g;
console.log(str.match(regex));

var str='jx():{ww.}55 x.replace(/^“|“$/g)”
.map(x=>x[0]=''”?x.slice(1,-1):x)

您使用的是
split
还是
match
?请发布完整的代码示例。拆分此
jx():{ww>的规则是什么55@felixmosh规则如下。在任何空格上拆分,但保留引号之间的空格。在{,},(,),%,@Tartarus13
str.match(/[\w\s]+|/g)上拆分。
我是否应该尝试你的方法,结果会很奇怪。
var str='1{{tempknown buzz我相信原因是因为它将引号外的东西解读为引号内的东西。例如:“the”和“that”仍然在qoatations中,因为它是“and”。我该如何解决这个问题?啊,前瞻不使用引号,所以它被重用为下一个“string literal”的开始立即。可以修改lookahead,使其只匹配字符串中的每一秒引号(如),但仅使用它们要简单得多。
str=str.split(/(?=".*")|(?=[(){}\[\]<>:;.\=\-\*\+\/])|(?=\s{2,})|(?=[0-9]+)/)
["jx", "(", ")", ":", "{ww", ".", "}", "5", "5", "<", "<", ";", "<", "5", "<", ">", "=", "-", "[", "]", "+", "*", "/", "\"hrw", "  ", "7 n t\"", ";fizz buzz"]
var str = 'jx():{ww.}55<<;<5<>=-[]+*/"hrw  7 n t";fizz buzz';
var regex = /"[^"]*"|<<|&&|\|\||\(|\)|\{|\}|\[|\]|<|>|:|;|\.|=|-|\*|\+|\/|\w+/g;
console.log(str.match(regex));