Python

【Python】正規表現で文字列の数値判定をする方法

アイキャッチ 数値判定

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