用于解析歌曲标题的 RegEx

By simon at 2019-05-12 • 0人收藏 • 16人看过

我有一系列的歌名,来自这个看板,看起来像这样:

["Lophelia -- MYTCH [原声前卫摇滚 / 爵士乐](2019)","Julia Jacklin -- Party 的压力[摇滚](2019)","无家可归的福音合唱团——我要回家[民谣朋克](2019)","Pat The Bunny | a Fistful of Vinyl","Lea Salonga and Simon Bowman —— The last night of The world [ music ](1990)","$uicdeboy $- Death","Mitchell SNFU -- Joni punk Tapes / alternative"(1993) ,"Blab-dosafhsd (2000)","Something strange and bad without any Classical artist",..."

我试图从他们解析标题和艺术家,但我真的挣扎与正则表达式。

我试着用"-"但是真的很烦人,事后只有艺术家。

我也试过使用正则表达式,但是我真的不能让一些东西正常工作。 下面是我为这位艺术家准备的:/(? - {1,2})[ s ] * (? 我不知道,我不知道这个作为标题/ [ s ] * (? - {1,2}) / i.

每个条目都是一首歌的标题。 之前的歌曲标题可以是歌曲的艺术家后面跟着一个或两个(或可能3?) 破折号。 然后可以在方括号中添加类型和 / 或在圆括号中标出发行日期。 我不期待完美的准确性,有些格式可能会很奇怪,在这种情况下,我宁愿有艺术家比一些奇怪的语法分析更加不确定。

例如:

{ title:"MYTCH",artist:"Lophelia"} ,{ title:"Party 的压力",artist:"Julia Jacklin"} ,{ title:"i'm Going Home",artist:"The homeless Gospel Choir"} ,{ title:"The last night of The world",artist:"Lea Salonga and Simon Bowman"} ,{ title:"Death",artist:"$uicideboy $"} ,{ title:"Joni Tapes",artist:"SNFU"} ,{ title:"afdoashsd",artist:"Something strange and badly formatted without any artist"}]
3 个回复 | 最后更新于 2019-05-12
2019-05-12   #1

要达到预期的结果,请使用以下选项

  1. 对于标题,使用位置为0和索引为'-'的 substr
  2. 艺术家与子 str 的位置索引的'-'(额外的空间)直到结束

句子太长,请短一点

代码板 -Https://codepen.io/nagasai/pen/rgerop?editors=1010

2019-05-12   #2

你可以这样做:

句子太长,请短一点。 * $/ ; const details songs.map (song { const splated song.split (/  s + - s +  s + /) ; let title splated [0] ; let artist splated [1] ; if (splatted.length 2){ artist artist.replace (trailingRgx,") ; } else { title ti.replace (trailingRgx,") ; } return { title,artist }) ; console.log (details) ;
2019-05-12   #3

您可以使用这个正则表达式捕获您在文章中描述的标题和艺术家部分。

^ ([ ^-[]() n ] +)-* * ([ ^ []() n ] *)

演示(故意显示在 PCRE 的味道,以保持组的颜色视觉上的吸引力,但它在 Javascript 的味道也工程)

代码演示

句子太长,请短一点。 Exec (song) console.log ("Title:"+ m [1] +",Artist:"+ m [2])

登录后方可回帖

Loading...