文字列の中の文字が英字を表す文字かどうかを判定する(isascii, isalpha, isalnum)

文字列で用意されているメソッドの中で、文字列の中に含まれる文字が英字を表す文字かどうか判定するのに使用できるメソッドの使い方について解説します。

(Last modified: )

すべての文字がASCII文字かどうかを判定する(isasciiメソッド)

isascii メソッドは文字列中のすべての文字が ASCII 文字の場合、または空文字の場合に真を返します。使い方は次の通りです。

str.isascii()

実際の使い方は次の通りです。

print("Hello".isascii())
>> True

print("8052".isascii())
>> True

print("関東地方".isascii())
>> False

ASCII コードにはカンマ(,)、ハイフン(-)、ドット(.)も含まれるため、これらの文字が含まれても真となります。

print("-8052".isascii())
>> True

print("-3.1415".isascii())
>> True

print("2,334,500".isascii())
>> True

isascii メソッドは空文字の場合も真となります。

print("".isascii())
>> True

すべての文字が英字の文字かどうかを判定する(isalphaメソッド)

isalpha メソッドは文字列中のすべての文字が英字で、かつ 1 文字以上ある場合に真を返します。使い方は次の通りです。

str.isalpha()

実際の使い方は次の通りです。

print("Hello".isalpha())
>> True

print("3345".isalpha())
>> False

英字とは公式サイトでは「英字は、Unicode 文字データベースで "Letter" として定義されているもので、すなわち、一般カテゴリプロパティ "Lm"、 "Lt"、 "Lu"、 "Ll"、 "Lo" のいずれかをもつものです。なお、これは Unicode 標準で定義されている "Alphabetic" プロパティとは異なるものです。」と説明されています。半角英字は含まれますが半角の数字が含まれていると偽となります。

また英字というとアルファベットのイメージがありますが、全角の文字も含まれます。ただし全角の文字であっても数字を表す文字は偽となります(漢数字は真となります)。

print("京都".isalpha())
>> True

print("Apple".isalpha())
>> True

print("765".isalpha())
>> False

print("七五三".isalpha())
>> True

空文字の場合は偽となります。

print("".isalpha())
>> False

すべての文字が英数字の文字どうかを判定する(isalnumメソッド)

isalnum メソッドは文字列中のすべての文字が英数字で使われる文字で、かつ 1 文字以上ある場合に真を返します。使い方は次の通りです。

str.isalnum()

実際の使い方は次の通りです。

print("100years".isalnum())
>> True

print("東京都".isalnum())
>> True

print("Orange7".isalnum())
>> True

文字が英数字かどうかは先に解説した isalpha メソッド、 isdecimal メソッド、 isdigit メソッド、 isnumericメソッドのどれかが真を返す文字です。( isdecimal メソッド、 isdigit メソッド、 isnumericメソッドは文字が数字かどうかを判定するメソッドです。詳しくは「文字列の中の文字が数を表す文字かどうかを判定する」を参照してください)。

空文字の場合は偽となります。

print("".isalnum())
>> False

-- --

文字列で用意されているメソッドの中で、文字列の中に含まれる文字が英字を表す文字かどうか判定するのに使用できるメソッドの使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。