簡體   English   中英

如何使用regex(.match())分割字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM