我想寫一個正則表達式來將字符串拆分爲數組。它必須使用空格或逗號的分隔符進行分隔,並忽略引用短語內部的分隔符(使用單引號或雙引號)。由多個分隔符分割字符串並忽略引號中的分隔符javascript
到目前爲止,我可以用空格和逗號分隔它,但我無法讓它在引號和我迷失之間忽略它們。
var pattern = /\b\w+[^"', ]+(?!'")/g,
text = "Hello world \"Boston Red Sox\" hello, world, \'boston, red sox\', \'beached whale\', pickup sticks",
output = text.match(pattern);
電流輸出:
["Hello", "world", "Boston", "Red", "Sox", "hello", "world", "boston", "red", "sox", "beached", "whale", "pickup", "sticks"]
所需的輸出:
["Hello", "world", "Boston Red Sox", "hello", "world", "boston, red sox", "beached whale", "pickup", "sticks"]
任何幫助將是巨大的!
正則表達式本身並不是爲這個偉大的工具。你不是[使用庫](http://stackoverflow.com/q/1293147/139010),也不使用[JS已經支持的非垃圾格式?](http://json.org /) –
這實際上是一個面試問題。他們希望我談論爲什麼這是一個可怕的方式來輸入一個字符串列表,我會在解決問題的方式下以最好的方式呈現字符串。 – Trendy
[我怎樣才能用Javascript解析CSV字符串,其中包含數據中的逗號?](https://stackoverflow.com/questions/8493195/how-can-i-parse-a-csv-string-with -javascript-which-contains-comma-in-data) – LWC