如何匹配python中不断变化的模式?



所以我收集了来自不同艺术家的歌词,但在所有歌词的中间总是有一个我想删除的广告。它看起来像这样:

'lyric lyric'看John Mayer live,门票低至53美元'

更一般地说,模式总是:'看艺术家现场获得门票低至$NUMBER'

有什么方法可以匹配这个变化的模式,这样我就可以摆脱这些广告在文本中?

编辑:固定,所以它删除了文本被删除的空间。

假设广告总是这种格式,这是一个非常简化的版本,你可以扩展…

import re
lyrics = "lyric lyric See John Mayer Live Get tickets as low as $53 lyric lyric"
pattern = r'Sees+(.*?)s+Live Get tickets as low ass+$[d,]+'
clean_lyrics = re.sub(pattern, '', lyrics).strip()
clean_lyrics = re.sub(r's+', ' ', clean_lyrics)
print(clean_lyrics)
# Output: 'lyric lyric lyric lyric'

s +,. * ?, d +是空白、组中的任意随机字符和按此顺序排列的数字。这是用来帮助识别模式的。

最新更新