![](/img/trans.png)
[英]Conditional look-behind (python regex), how to exclude certain words but include certain words?
[英]Exclude words but include characters in regex
我有以下字符串:
<Chord: Aaug>, <Chord: C#aug/A>, <Chord: Faug/A>
我想提取和弦名稱, <Chord:
和>
,還包括逗號。 所以,對於那個字符串,我想匹配Aaug, C#aug/A, Faug/A
。
我試過這個正則表達式: \\b(?:(?!Chord:)\\w)+\\b
。 這排除了單詞Chord
,但不匹配#
和/
。
<Chord:([^>]*)>
說明:從<Chord:
直到第一次出現>
以及>
匹配它,如果你想匹配python中的所有出現,你可以在python3中使用re
庫的findall
。
使用 python 演示:
要捕獲每個<Chord:
to >
之間的值,請嘗試:
import re
a='<Chord: Aaug>, <Chord: C#aug/A>, <Chord: Faug/A>'
re.findall(r'<Chord: ([^>]*)', a)
['Aaug', 'C#aug/A', 'Faug/A']
或將值與<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>'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.