在正则表达式中排除单词,但包含字符



我有以下字符串:

<Chord: Aaug>, <Chord: C#aug/A>, <Chord: Faug/A>

我想提取和弦名称,介于<Chord:>之间,还包括逗号。所以,对于那个字符串,我想要匹配Aaug, C#aug/A, Faug/A

我尝试过这个正则表达式:b(?:(?!Chord:)w)+b。这排除了单词Chord,但与#/不匹配。

您能尝试以下内容吗?在regex 的链接演示中编写并测试

<Chord:([^>]*)>

解释:<Chord:>的第一次出现以及与之匹配的>,如果你想匹配python中的所有出现,你可以在python3中使用re库的findall

使用python演示:

要捕获每个<Chord:>之间的值,请尝试:

import re
a='<Chord: Aaug>, <Chord: C#aug/A>, <Chord: Faug/A>'
re.findall(r'<Chord: ([^>]*)', a)
['Aaug', 'C#aug/A', 'Faug/A']

OR将值与<Chord:>匹配:

import re
a='<Chord: Aaug>, <Chord: C#aug/A>, <Chord: Faug/A>'
re.findall(r'<Chord:([^>]*)>', a)
[' Aaug', ' C#aug/A', ' Faug/A']
re.findall(r'<Chord:[^>]*>', a)
['<Chord: Aaug>', '<Chord: C#aug/A>', '<Chord: Faug/A>']

要访问列表中的单个项目:

re.findall(r'<Chord:[^>]*>', a)[0]
'<Chord: Aaug>'
re.findall(r'<Chord:[^>]*>', a)[1]
'<Chord: C#aug/A>'

最新更新