javascript - 使用正则表达式从字符串中解析艺术家
问题描述
我正在尝试
使用 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'
]
我在这里想念什么?
解决方案
尝试不带括号。使用捕获组使您可以单独匹配字符串,因此如果您使用它会创建更多未定义的项目split()
var a = "Ludacris feat. Lil Jon, Drake & Elvis Presley".split(/\s*\bfeat\b[.]?\s*|\s*,\s*|\s*&\s*/);
console.log(a);
推荐阅读
- sass - SCSS/SASS 函数。大众减去像素
- java - 启动 maven 插件并在 VS Code 上附加调试器
- reactjs - 在 json fetch 中需要帮助映射
- yugabyte-db - 更改 YugabyteDB 集群中现有服务器的放置位置
- python - 尝试对使用 pyinstaller 创建的应用程序进行代码设计时出现“无法识别、无效或不合适的捆绑格式”错误消息
- azure - 重构 Terraform 变量以实现可扩展性
- python - 前行值 Python
- xlwings - 如何在 Xlwings 中使用图标集?
- python - Asyncio 协程处理
- reactjs - NextJS 中的 AmCharts - SyntaxError: Unexpected token 'export'