簡體   English   中英

按空格分割字符串,但忽略引號中的某些單詞和空格后的空格

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

我該如何解決?

一種選擇可能是在左側斷言不是LLCS-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.

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