こんにちは!
皆さんは、文字列の中の文字が大文字なのか小文字なのか判定したいと思ったことはありませんか?
入力した文字列で分岐するときに使いたいと思った!
「isupper()」、「islower()」、「istitle()」、正規表現を使い分けると簡単に判定することができますよ。
今回の記事では、以下の内容について紹介します。
- すべての文字が大文字かどうか判定する方法
- すべての文字が小文字かどうか判定する方法
- 単語の先頭の文字がすべて大文字かどうか判定する方法
- 文字列中に大文字があるかどうか判定する方法
目次
すべての文字が大文字かどうか判定「isupper()」
「isupper()」を使うと、文字列中の文字すべてが大文字かどうかを判定することができます。
str1 = "PYTHON BEGINNER"
str2 = "Python Beginner"
print(str1.isupper())
print(str2.isupper())
実行結果
True
False
すべての文字が小文字かどうか判定「islower()」
「islower()」を使うと、文字列中の文字すべてが小文字かどうかを判定することができます。
str1 = "python beginner"
str2 = "Python Beginner"
print(str1.islower())
print(str2.islower())
実行結果
True
False
単語の先頭の文字がすべて大文字かどうか判定「istitle()」
「istitle()」を使うと、文字列中の単語の先頭の文字がすべて大文字かどうか判定することができます。
str1 = "python beginner"
str2 = "Python Beginner"
print(str1.istitle())
print(str2.istitle())
実行結果
False
True
文字列中に大文字があるかどうか判定
正規表現を使うと、文字列中に大文字があるかどうか簡単に判定することができます。
正規表現には、「reモジュール」を使います。reモジュールは標準ライブラリのため、インストールの必要はありません。
今回は、reモジュールの「search()」を使用して判定します。
re.search(正規表現, 文字列)
正規表現に当たる文字が文字列中に存在するかどうかを判定することができます。
以下のプログラムは、正規表現により文字列中に大文字があるかどうかを判定するプログラムです。
import re
str = 'python beGinner'
result = re.search('[A-Z]', str)
if result:
print("True")
else:
print("False")
解説
result = re.search(‘[A-Z]’, str)
strの中にAからZの文字(アルフファベットの大文字)が存在するかを判定します。
存在すればマッチオブジェクトを返し、存在しなければ何も返しません。
存在すればマッチオブジェクトを返し、存在しなければ何も返しません。
if result:
print(“True”)
else:
print(“False”)
print(“True”)
else:
print(“False”)
resultの中身があれば、つまりマッチオブジェクトが返されていたらTrueと表示し、
なければFalseと表示します。
なければFalseと表示します。
実行結果
True
‘[A-Z]’の部分を‘[a-z]’とすることで、小文字の判定にも使用できます。
また、関数化することによって使いやすくなるので、使用頻度の多い方は関数化するようにしましょう。
まとめ
今回の記事では、以下の内容を紹介しました。
- すべての文字が大文字かどうか判定する方法
→「isupper()」を使用 - すべての文字が小文字かどうか判定する方法
→「islower()」を使用 - 単語の先頭の文字がすべて大文字かどうか判定する方法
→「istitle()」を使用 - 文字列中に大文字があるかどうか判定する方法
→reモジュールの「search()」を使用
これで大文字小文字について判定できるようになったね!
判定したい条件によって使い分けましょう!