【发布时间】:2020-06-03 17:20:57
【问题描述】:
我正在尝试读取字符串,例如
使用 javascript 将 "Ludacris feat. Lil Jon, Drake & Elvis Presley" 转换为数组 ["Ludacris", "Lil Jon", "Drake", "Elvis Presley"]。
字符串始终具有相同的结构,但有时它们会在 [feat. ... ] 或 (feat. ... ) 等特色艺术家周围加上括号
我现在拥有的是:
(\s*\b(feat)\b[.]?\s*)|(\s*,\s*)|(\s*&\s*)
当我在https://regex101.com/ 上测试时,它似乎匹配正确,但是,以下代码不起作用
var a = "Ludacris feat. Lil Jon, Drake & Elvis Presley".split(/(\s*\b(feat)\b[.]?\s*)|(\s*,\s*)|(\s*&\s*)/);
console.log(a);
输出是
[
'Ludacris', ' feat. ',
'feat', undefined,
undefined, 'Lil Jon',
undefined, undefined,
', ', undefined,
'Drake', undefined,
undefined, undefined,
' & ', 'Elvis Presley'
]
我在这里错过了什么?
【问题讨论】:
-
使用非捕获组
标签: javascript regex string split