我在变量testrongtring中有这个示例字符串。我想删除合唱文本。它的格式是:[colore etc.]chorus_text[verse etc.]。我在python中尝试了一些regex模式,但什么都没有。知道吗?我提供的模式并不能满足我的需要。chorus_text包括标点符号和字符。
test_string = """Cordae,RNP,2019.0,"RNP Lyrics[Chorus: Anderson .Paak] text text text text text text te'all tean' tean' text text text [Verse 1: YBN Cordae]."""
pattern = re.compile(r"[^[chorus]$][^[verse]]")
subbed_chorus_before_verse = pattern.findall(test_string)
test_string = """Cordae,RNP,2019.0,"RNP Lyrics[Chorus: Anderson .Paak] text text text text text text te'all tean' tean' text text text [Verse 1: YBN Cordae]."""
re.sub('(?<=])(.*)(?=[)','',test_string)
# (?<=]) : positive lookbehind for ]
# (?=[ : positive look ahead for [
'Cordae,RNP,2019.0,"RNP Lyrics[Chorus: Anderson .Paak][Verse 1: YBN Cordae].'
您可以使用
re.sub(r'[Chorus:[^][]*][^[]*', '', test_string)
请参阅演示。
详细信息:
[Chorus:
-[Chorus:
字符串[^][]*
-除]
和[
之外的零个或多个字符]
-]
字符[^[]*
-除[
之外的零个或多个字符