pythonコード百科事典

コピペですぐ使えるPythonコードをご紹介

Pythonで文字列が数値として正しい形式であるかを確認する方法

Pythonでは、文字列が数値として正しい形式であるかどうかを確認するには、標準ライブラリの re モジュールを使用することができます。
このモジュールは、正規表現を扱うためのものです。

整数の場合

例えば、以下のようにして、文字列が整数の形式であるかどうかを確認することができます。

import re

def is_integer(string):
    # ^ は文字列の先頭を表し、$ は文字列の末尾を表す
    # \d は数字を表す
    # + は直前の文字が1回以上繰り返されることを表す
    pattern = "^\d+$"
    return bool(re.match(pattern, string))

print(is_integer("123"))  # True
print(is_integer("123.4"))  # False
print(is_integer("abc"))  # False

上記の例では、文字列が整数の形式であるかどうかを確認するために、正規表現 "^\d+$" を使用しています。
この正規表現は、文字列の先頭 (^) から末尾 ($) までが、1 回以上 (+) 繰り返される数字 (\d) のみで構成されていることを表しています。

少数の場合

例えば、以下のようにして、文字列が少数の形式であるかどうかを確認することができます。

import re

def is_float(string):
    # ^ は文字列の先頭を表し、$ は文字列の末尾を表す
    # \d は数字を表す
    # + は直前の文字が1回以上繰り返されることを表す
    # \. は小数点を表す
    pattern = "^\d+\.\d+$"
    return bool(re.match(pattern, string))

print(is_float("123.4"))  # True
print(is_float("123"))  # False
print(is_float("abc"))  # False

上記の例では、文字列が少数の形式であるかどうかを確認するために、正規表現 "^\d+.\d+$" を使用しています。
この正規表現は、文字列の先頭 (^) から末尾 ($) までが、1 回以上 (+) 繰り返される数字 (\d) のみで構成されていることを表しています。また、小数点 (.) も含んでいます。

注意: 正規表現を使用する場合、文字列中に特殊文字が含まれている場合は、それらをエスケープする必要があります。例えば、小数点 (.) を表すには、. と記述する必要があります。