正規表現を使った数値(小数点や負数を含む)の受け入れ方法


  1. 整数または小数を受け入れるパターン: 正規表現パターン: ^[-+]?[0-9]+(.[0-9]+)?$ 説明:
    • ^[-+]? : 先頭がオプションの負号または正号で始まることを表します。
    • [0-9]+ : 1つ以上の数字が続くことを表します。
    • (.[0-9]+)? : オプションの小数点と1つ以上の数字が続くことを表します。
    • $ : 文字列の終わりを表します。

例: import re

pattern = r'^[-+]?[0-9]+(.[0-9]+)?$' inputs = ["123", "-456", "+789", "3.14", "-2.718", "+0.5", "abc", "12x34", "-"] for input_str in inputs: if re.match(pattern, input_str): print(f"{input_str} は数値です") else: print(f"{input_str} は数値ではありません")

出力: 123 は数値です -456 は数値です +789 は数値です 3.14 は数値です -2.718 は数値です +0.5 は数値です abc は数値ではありません 12x34 は数値ではありません

  • は数値ではありません
  1. 負数のみを受け入れるパターン: 正規表現パターン: ^-?[0-9]+(.[0-9]+)?$ 説明: 先頭にオプションの負号があり、その後に1つ以上の数字とオプションの小数部分が続くことを表します。

例: import re

pattern = r'^-?[0-9]+(.[0-9]+)?$' inputs = ["-123", "-456.78", "789", "3.14", "abc", "-xyz"] for input_str in inputs: if re.match(pattern, input_str): print(f"{input_str} は負数です") else: print(f"{input_str} は負数ではありません")

出力: -123 は負数です -456.78 は負数です 789 は負数ではありません 3.14 は負数ではありません abc は負数ではありません -xyz は負数ではありません

これらの正規表現パターンは、数値の形式を検証するために使用できます。必要に応じて、他の方法やパターンを組み合わせることもできます。