我有一个ListView显示歌曲名称和艺术家。有时,歌曲名称包含曲目编号和分隔符,其中某些格式与此
13 - J. Cole - Best Friend
和其他这样的人
13 - Beautiful People
经过一番挖掘之后,我发现最好的方法是定义一个正则表达式模式,该模式将删除字符串中所有不必要的字符。凉。我已经看过关于类似主题here的其他SO问题以及一些博客文章,但仍然没有运气。
这是我第一次处理正则表达式,我发现它非常有用,只是试图用高效/有用的模式来解决问题。
如果匹配,这就是我需要从字符串中删除的内容
The track number
The "-" or whatever separator character that follows it
The artist name and the "-" that follows that(Each artist name is listed below the song, so it would be redundant)
作为平常的人,在此方面的任何帮助将不胜感激,谢谢!
编辑:我想要的输出是类似的内容,只是歌曲名称。没有曲目编号,如果适用; “-”之后没有艺术家的名字
Beautiful People
Angel of Mine
Human Nature
最佳答案
这是您可以使用的可能的正则表达式:
name.replaceFirst("^\\d+\\.?\\s*-(?:.*?-)?\\s*", "")
这将取出:
前面的