Pythonで正規表現を使用して文字列の数値判定を行う方法について紹介します。
整数判定
整数の判定には『re』モジュールの『match』関数を使用します。
import re
return re.match(r'^[+-]?\d+$', '確認文字列') is not None
サンプルコード
import re
# 整数チェック
def is_integer(value):
return re.match(r'^[+-]?\d+$', value) is not None
print(is_integer('1234567890'))
# 結果:True
print(is_integer('+1234567890'))
# 結果:True
print(is_integer('-1234567890'))
# 結果:True
print(is_integer('--1234567890'))
# 結果:False
print(is_integer('++1234567890'))
# 結果:False
print(is_integer('a1234567890'))
# 結果:False
print(is_integer('1234567890a'))
# 結果:False
print(is_integer('1234567a890'))
# 結果:False
小数判定
小数の判定には『re』モジュールの『match』関数を使用します。
import re
return re.match(r'^[+-]?\d+[.]?\d+$', value) is not None
サンプルコード
import re
# 小数チェック
def is_decimal(value):
return re.match(r'^[+-]?\d+[.]?\d+$', value) is not None
print(is_decimal('1234567890'))
# 結果:True
print(is_decimal('+1234567890'))
# 結果:True
print(is_decimal('-1234567890'))
# 結果:True
print(is_decimal('12345.67890'))
# 結果:True
print(is_decimal('+12345.67890'))
# 結果:True
print(is_decimal('-12345.67890'))
# 結果:True
print(is_decimal('.1234567890'))
# 結果:False
print(is_decimal('1234567890.'))
# 結果:False
print(is_decimal('12345.678.90'))
# 結果:False