Javascript 如何使用正则表达式(.match())拆分字符串?
如何使正则表达式像 目前我正在使用这个input=input.match/\w+|[^]*+|[^]++/g input1:java和操作系统以及c和c++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 ", ",
但输出是: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谢谢你的回复……但它可能是和|或|不是|一些字符串请使用查看-右侧有一个解释部分,可以比我更好地解释它!