簡體   English   中英

我需要將重復單詞上的長字符串拆分為數組

[英]I need to split a long string on a repeating word into an array

嘗試使用Javascript,我有一個很長的字符串,我需要使用在字符串中重復的單詞將其拆分為數組。

例:

long_string = "THS& | Willam | Baker | 1234 Corker St| Jacksonville, TX 75074| THS& Steve | James | 4312 Corker St | Jacksonville, TX 75074| THS& | Samuel | Cade | 1257 Corker St | Jacksonville, TX 75074|"

我嘗試過拆分和匹配,但始終忽略了THS&

split_string = [];
split_string = long_string.split(/THS&/);
console.log(split_string);


放入數組:

[THS& | Willam | Baker | 1234 Corker St| Jacksonville, TX 75074|, THS& Steve | James | 4312 Corker St | Jacksonville, TX 75074|, THS& | Samuel | Cade | 1257 Corker St | Jacksonville, TX 75074|]

但是我得到的是這樣的

[| Willam | Baker | 1234 Corker St| Jacksonville, TX 75074|, Steve | James | 4312 Corker St | Jacksonville, TX 75074|, | Samuel | Cade | 1257 Corker St | Jacksonville, TX 75074|]

無論您在split匹配的內容(例如THS& )都不會包含在結果中。 解決方案是使用look-ahead ,它實際上不會捕獲字符串:

 var long_string = "THS& | Willam | Baker | 1234 Corker St| Jacksonville, TX 75074| THS& Steve | James | 4312 Corker St | Jacksonville, TX 75074| THS& | Samuel | Cade | 1257 Corker St | Jacksonville, TX 75074|" var split_string = long_string.split(/(?=THS&)/); console.log(split_string); 

split()方法在結果子字符串中不包含分隔符。 如果分隔符總是相同,請考慮在每個子字符串的開頭將其串聯。 (您可以遍歷split_string並在數組的每個字符串的開頭添加連接"THS& "

分隔符將不會包含在結果中,因此您必須將其重新添加。而且,第一項將為空,因此請使用Array.prototype.shift()從結果數組中剝離它。 例如:

 var long_string = "THS& | Willam | Baker | 1234 Corker St| Jacksonville, TX 75074| THS& Steve | James | 4312 Corker St | Jacksonville, TX 75074| THS& | Samuel | Cade | 1257 Corker St | Jacksonville, TX 75074|"; var split_string = long_string.split("THS&").map(function(item) { return "THS&"+item; }); split_string.shift(); console.log(split_string); /* [ "THS& | Willam | Baker | 1234 Corker St| Jacksonville, TX 75074| ", "THS& Steve | James | 4312 Corker St | Jacksonville, TX 75074| ", "THS& | Samuel | Cade | 1257 Corker St | Jacksonville, TX 75074|" ] */ 

嘗試這個

long_string.match(/\S.+?(?=( THS&)|$)/g)

THS之前的空間用於修剪最后一個空間

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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