目次
大文字・小文字は区別される
正規表現は基本的に大文字・小文字を分けて認識しマッチします。
import re
pattern=re.compile(r'Hayato')
print(pattern.search('Hayato'))
#出力結果は
<re.Match object; span=(0, 6), match='Hayato'>
import re
pattern=re.compile(r'Hayato')
print(pattern.search('hayato'))
#出力結果は
None
大文字と小文字がしっかりと区別されてマッチしていることがわかります。
大文字・小文字を区別せずにマッチしたい場合
しかし、大文字と小文字を区別せずにマッチしたい場合もあります。
その場合は、re.compile()にre.IGNORECASEまたはre.Iを渡します。
import re
pattern=re.compile(r'Hayato',re.I)
print(pattern.search('hayato'))
#出力結果は
<re.Match object; span=(0, 6), match='hayato'>
大文字と小文字を区別せずにマッチするようになりました。
re.I は re.IGNORECASE の省略形
re.IGNORECASE は長いので re.I こっちしか覚えられない。
まとめ
- 正規表現は基本的に大文字・小文字を区別する
- Hayato と hayato は別の文字列として扱われる
- 区別したくない場合は re.IGNORECASE または re.I を使う
- re.I は re.IGNORECASE の省略形

コメント