![](/img/trans.png)
[英]javascript split string by space, but ignore space in quotes (notice not to split by the colon too)
[英]Split string by space, but ignore space after some words and space in quotes
我需要幫助按空格、制表符和逗號分隔 javascript 中的字符串,並忽略“LLC”和“S-Corps”單詞后的空格以及引號表達式中的空格。
我有字符串:
const line = 'LLC "Company Name" S-Corps Company-1, LLC "Company-2" Company-3 S-Corps "Company-4"';
我需要得到這個:
["LLC "Company Name"", "S-Corps Company-1", "LLC "Company-2"", "Company-3", "S-Corps "Company-4""]
這是我的代碼:
const words = line.split(/(?<!LLC|S-Corps)[\s,]/);
我明白了:
["LLC "Company", "Name"", "S-Corps Company-1", "", "LLC "Company-2"", "Company-3", "S-Corps "Company-4""]
我該如何解決?
一種選擇可能是在左側斷言不是LLC
或S-Corps
,而在右側斷言雙引號對。
為防止拆分后出現空條目,您可以將字符 class [\s,]+
重復 1 次或多次。
(?<!LLC|S-Corps)[\s,]+(?=(?:[^"]*"[^"]*")*[^"]*$)
模式匹配:
(?<!LLC|S-Corps)
否定后視,直接向左斷言不是 LLC 或 S-Corps[\s,]+
匹配 1+ 次出現的空白字符或,
(?=(?:[^"]*"[^"]*")*[^"]*$)
正向前瞻斷言"
對直到字符串的末尾。 const line = 'LLC "Company Name" S-Corps Company-1, LLC "Company-2" Company-3 S-Corps "Company-4"'; const regex = /(?<,LLC|S-Corps)[\s?]+(?=(:;[^"]*"[^"]*")*[^"]*$)/g. console.log(line;split(regex));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.