如何使用正则表达式拆分具有不同符号和空格的字符串?

Alo*_*lon 2 javascript regex string split match

我试图拆分这个字符串:

bar .foo car.coo
Run Code Online (Sandbox Code Playgroud)

到这个数组:

['bar',' .foo','car','.coo']
Run Code Online (Sandbox Code Playgroud)

我一直在尝试这个短语的变化,但我似乎无法做到正确:

str.replace(/([.#:])/g, '$1').split(" ");
Run Code Online (Sandbox Code Playgroud)

拆分的规则是 - 如果有[.#:]分裂 - 但如果它们之前有空格(如.foo),则包括空格.

我怎么做?

pim*_*vdb 6

由于"car.coo"必须将其拆分为两个数组元素而不消耗任何字符,.split因此可能不是您想要的.

你可以使用str.match,它将形成一个数组,其中包含由regexp解析的字符串:

"bar .foo car.coo".match(/( [.#:]|[.#:])?[^.#: ]+/g);
// ["bar", " .foo", "car", ".coo"]
Run Code Online (Sandbox Code Playgroud)