我有以下字符串:
<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>'