Javascript 如何使用正则表达式(.match())拆分字符串?

Javascript 如何使用正则表达式(.match())拆分字符串?,javascript,regex,Javascript,Regex,如何使正则表达式像 目前我正在使用这个input=input.match/\w+|[^]*+|[^]++/g input1:java和操作系统以及c和c++ 但输出是:java,操作系统和C++和C++ 它应该是:java,操作系统,C++,c++/p>> p>为什么不简单的替换?< /p> string input1 = ("java") AND ("operating systems" AND "c" AND c++); input1 = input1 .replace("AND ", ",

如何使正则表达式像

目前我正在使用这个input=input.match/\w+|[^]*+|[^]++/g

input1:java和操作系统以及c和c++

但输出是:java,操作系统和C++和C++


它应该是:java,操作系统,C++,c++/p>> p>为什么不简单的替换?< /p>

string input1 = ("java") AND ("operating systems" AND "c" AND c++);
input1 = input1 .replace("AND ", ",AND,");

要获得您发布的输入的确切输出,请将所有空格替换为逗号(引号内的空格除外):

var originalString = '"("java") AND ("operating systems" AND "c" AND c++)"';
var newString = originalString.replace(/\s+(?=([^"]*"[^"]*")*[^"]*$)/gi, ',');
@Christoffee的建议也可以稍加调整,因为您的用例只涉及三个词,这也让您更容易理解正在发生的事情:

var originalString = '"("java") AND ("operating systems" AND "c" AND c++)"';
var newString = originalString.replace(/\s+(AND|OR|NOT)\s+/gi, ',$1,');

hey@christoffer谢谢你的回复……但它可能是和|或|不是|一些字符串请使用查看-右侧有一个解释部分,可以比我更好地解释它!