Pythonでは、大文字と小文字を区別せずに文字列を比較するためのいくつかの方法があります。
方法1: str.upper()
と str.lower()
文字列をあらかじめ大文字、または小文字に変換することで大文字小文字を区別することなく比較することができます。
s1 = 'abc'
s2 = 'ABC'
# 大文字に変換して比較
if s1.upper() == s2.upper():
print('等しい')
# 小文字に変換して比較
if s1.lower() == s2.lower():
print('等しい')
方法2: str.casefold()
casefold()
メソッドは、大文字小文字関係なく比較を行うためにPython 3.3で追加された文字列型のメソッドです。
s1 = 'abc'
s2 = 'ABC'
if s1.casefold() == s2.casefold():
print('等しい')
方法3: 正規表現
正規表現を使うことでも大文字小文字を区別せずに比較することが可能です。re.fullmatch()
を使い、フラグに re.IGNORECASE
を指定することで大文字小文字を区別せずに完全一致の場合のみマッチさせることができます。
import re
s1 = 'abc'
s2 = 'ABC'
if re.fullmatch(s1, s2, re.IGNORECASE) != None:
print('等しい')
以上の方法を使えば、Pythonで大文字と小文字を区別せずに文字列を比較することが可能です。それぞれの方法には特性があるので、適切な方法を選んで使用してください。