テキストから大文字と小文字を区別して一致させたい。以下のケースでは、re.search を使用して "Ca.iNy" を照合しようとしました。"C" を大文字にする必要がある場所を照合し、残りのすべての文字がいずれかのケースになるようにします。大文字と小文字が一致する場合、変数に値を設定します。
SOのヘルプフォームを取得し、最初の文字が大文字かどうかをチェックして実装しましたが、1回のチェックで問題なく機能しました。
s = "The details belong to (Ca.iNy.) in this case"
reg = re.compile("Ca.iny.", re.I)
reg.search(s).group().startswith("C").
ただし、「if else ループ」では使用できません。以下のコードを試してみましたが、検索では大文字と小文字が区別されないようです。誰でも私にさせてもらえますか?
import re
st = "The details belong to (Ca.iNy.) in this case"
Mval = ''
if re.search(r"C(?i)a.iny", st):
Mval = "AAAAA"
elif re.search(r"(?i)Ky.", st):
Mval = "BBBBB"
elif re.search(r"(?i)M.sa.", st):
Mval = "CCCCC"
else:
Mval = "DDDDD"
print Mval