通过多个分隔符拆分字符串并忽略引号javascript中的分隔符

Tre*_*ndy 0 javascript regex string

我正在尝试编写正则表达式将字符串拆分为数组.它必须使用空格或逗号的分隔符进行拆分,并忽略引用短语内的分隔符(使用单引号或双引号).

到目前为止,我能够通过空格和逗号分隔它,但是我无法让它在引号之间忽略它们而我已经丢失了.

var pattern = /\b\w+[^"', ]+(?!'")/g,
    text = "Hello world \"Boston Red Sox\" hello, world, \'boston, red sox\', \'beached whale\', pickup sticks",
    output = text.match(pattern);
Run Code Online (Sandbox Code Playgroud)

当前输出:

["Hello", "world", "Boston", "Red", "Sox", "hello", "world", "boston", "red", "sox", "beached", "whale", "pickup", "sticks"] 
Run Code Online (Sandbox Code Playgroud)

期望的输出:

["Hello", "world", "Boston Red Sox", "hello", "world", "boston, red sox", "beached whale", "pickup", "sticks"]
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很棒!

Fab*_*tor 5

只是用 |

    var regex = /"([^"]*)"|'([^']*)'|[^\s,]+/g;
    var text = "Hello world \"Boston Red Sox\" hello, world, \'boston, red sox\', \'beached whale\', pickup sticks";
    var output = [];
    var m;
    while ((m = regex.exec(text)) !== null)
    {
        output.push(m[1] || m[2] || m[0]);
    }
    console.log(output);
Run Code Online (Sandbox Code Playgroud)

小提琴