gpt4 book ai didi

java - 正则表达式从歌曲名称中删除轨道编号?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:21:40 25 4
gpt4 key购买 nike

我有一个显示歌曲名称和艺术家的 ListView。有时,歌曲名称包含轨道编号和分隔符,有些采用这种格式

13 - J. Cole - Best Friend 

还有其他类似的

13 - Beautiful People

在深入研究之后,我发现解决此问题的最佳方法是定义一个正则表达式模式,该模式将删除字符串中任何不必要的字符。凉爽的。我看过关于类似主题的其他 SO 问题 here和一些博客文章,但仍然没有运气。

这是我第一次处理正则表达式,我发现它非常有用,只是想全神贯注地想出高效/有用的模式。

这是我需要从字符串中删除的内容(如果匹配)

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*", "")

这取出:

  1. 前面的数字
  2. 可选地后跟一个点
  3. 可选空格
  4. 一个连字符
  5. 如果找到了下一个连字符,则直到那个连字符为止
  6. 可选空格

关于java - 正则表达式从歌曲名称中删除轨道编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17267269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com