正则表达式 Artist-Title

Regex Artist-Title

我有一长串艺术家和他们的一首歌。 下面列出了一些示例:

30 Seconds To Mars - Savior
3-nen E-Gumi Utatan - Seishun Satsubatsuron (TV)
7!! - Start Line (TV)
ABBA - Estoy soñando
AKINO with bless4 - Kimi no Shinwa ~ Aquarion Dai Ni Shou (TV)
µ's - Angelic Angel (TV)

每个名字的格式都像这个列表,我已经尝试添加所有可能的组合。

我需要一份所有艺术家和歌曲分开的列表。 我将如何提取艺术家以便我可以将其复制到另一个文件。 以及如何提取歌曲以便将其复制到另一个文件。

如前所述,格式是艺术家 - 歌曲

我试过这个正则表达式 atm:^.*(-) 但这也选择了 - 符号

看起来不难;您只需要在正则表达式中包含空格,可以是文字,也可以是正则表达式 \s.

此外,正则表达式中的捕获组在 - 符号周围。我假设您需要捕获艺术家和标题。

^(.*?)\s+-\s+(.*?)$

然后只需将 </code> 替换为艺术家,将 <code> 替换为标题。

至于你到底想做什么...只需制作文件的两份副本,并在一份中为艺术家替换为 </code>,在另一份中为艺术家替换为 <code>标题。

此正则表达式 .+(?=-) 将获取最后一个连字符之前的所有内容。 (?!<-)[^-]+$ 之后的所有内容。

检查 this example 将两者结合起来并在捕获组 1 中获取歌曲,在编号 2 中获取艺术家。

此致。

^(.*?)\s-\s(.*?)$

这是DEMO