クロード・デTchambila:
どのように私は正規表現を使用して、文字列でお互いを以下同じ文字のバーサ「大文字と小文字」や悪徳のすべての出現を一致させることができますか?例えば:「aADFfGcCgs」、私は、AA、FfのとCC私は、次のやってマッチさせたいre.findall('[a-Z][A-Z]', string)
だけ必然的に他の文字の逆のケースではない2つの文字を一致させることができます。
Wiktor第Stribiżav:
あなたは使用することができます
print( [x.group() for x in re.finditer(r'([a-zA-Z])(?!\1)(?i:\1)', 'aADFfGcCgs')] )
# => ['aA', 'Ff', 'cC']
とre.findall
:
[x for x,y in re.findall(r'(([a-zA-Z])(?!\2)(?i:\2))', 'aADFfGcCgs')]
参照してくださいPythonのデモを。
細部
([a-zA-Z])
- キャプチャグループ1:ASCII文字(?!\1)
- 次の文字は、グループ内の取り込ま文字に等しくはならない1(?i:\1)
- グループ1の捕捉が、パターンが大文字と小文字を区別しないように一致させることができるのと同じチャー。