[英]how to split a string using regex(.match())?
如何使RegEx像這樣拆分字符串
目前我正在使用此input = input.match(/ \\ w + |“ [^”] *“ + |((([^)] +))+ / g);
input1:(“ java”)AND(“操作系統” AND“ c” AND c ++)
但是輸出是:“ java”,AND,(“操作系統” AND“ c” AND c ++)
它應該是這樣的:(“ java”),AND,(“” operating systems“,AND,” c“,c ++)
為什么不只是簡單地替換呢?
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, ',');
@Christoffer的建議也可以稍作調整,因為您的用例僅涉及三個詞(這也使它更容易理解正在發生的事情):
var originalString = '"("java") AND ("operating systems" AND "c" AND c++)"';
var newString = originalString.replace(/\s+(AND|OR|NOT)\s+/gi, ',$1,');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.