regex 如何在Python中匹配一个不断变化的模式?

r55awzrz  于 2023-03-31  发布在  Python
关注(0)|答案(1)|浏览(101)

所以我收集了不同艺术家的歌词,但在所有歌词中间总有一个广告我想删除。它看起来像这样:
'抒情抒情看约翰梅尔现场获得门票低至53美元抒情抒情'
更一般地,模式总是:'看艺术家现场获得门票低至$NUMBER'
有没有一种方法可以匹配这种变化的模式,这样我就可以摆脱文本中的这些广告?

a8jjtwal

a8jjtwal1#

编辑:已修复,因此它会删除删除文本的位置的空间。
假设广告总是这种格式,这是一个非常简化的版本,你可以扩展。

import re

lyrics = "lyric lyric See John Mayer Live Get tickets as low as $53 lyric lyric"

pattern = r'See\s+(.*?)\s+Live Get tickets as low as\s+\$[\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+**是空格,一组中的任何随机字符,以及按此顺序排列的数字。这用于帮助识别模式。

相关问题