Python で文字列に数値が含まれていることを確認する方法

  1. Python の any 関数と str.isdigit を使用して、文字列に数値が含まれているかどうかを確認します
  2. re.search(r'\d') は、文字列に数値が含まれているかどうかを確認します

この記事では、Python 文字列に数値が含まれているかどうかを確認する方法を紹介します。

Python 組み込みの any 関数str.isdigit を組み合わせると、指定された文字列に数値が含まれている場合に True が返されますそれ以外の場合は、False を返します。

パターン r'\d' を持つ Python 正規表現検索メソッドは、指定された文字列に数値が含まれている場合、True を返すこともできます。

Python の any 関数と str.isdigit を使用して、文字列に数値が含まれているかどうかを確認します

any 関数は、指定された iterable のいずれかの要素が Ture である場合は True を返し、それ以外の場合は False を返します。

str.isdigit() は、指定された文字列のすべての文字が数字の場合は True を返し、それ以外の場合は False を返します。

any(chr.isdigit() for chr in stringExample)

stringExample に少なくとも数値が含まれている場合、上記のコードは True を返します。これは、chr.isdigit()for chr in stringExample が少なくとも 1つの Trueiterable に持つためです。

実施例

str1 = "python1"
str2 = "nonumber"
str3 = "12345"

print(any(chr.isdigit() for chr in str1))
print(any(chr.isdigit() for chr in str2))
print(any(chr.isdigit() for chr in str3))

出力:

True
False
True

map() 関数

Python map(function,iterable) fuctionは、指定された iterable のすべての要素に function を適用し、イテレータを返します上記の結果が得られます。

したがって、上記のソリューションを次のように書き直すことができます。

any(map(str.isdigit, stringExample))

実施例

str1 = "python1"
str2 = "nonumber"
str3 = "12345"

print(any(map(str.isdigit, str1)))
print(any(map(str.isdigit, str2)))
print(any(map(str.isdigit, str3)))

出力:

True
False
True

re.search(r'\d') は、文字列に数値が含まれているかどうかを確認します

re.search(r'\d', string) は、string をスキャンして、一致オブジェクトを返します指定されたパターンに一致する最初の場所-\d は 0 から 9 までの任意の数を意味し、一致が見つからない場合は None を返します。

import re

print(re.search(r'\d', "python3.8"))
#output: <re.Match object; span=(6, 7), match='3'>

match オブジェクトには、match の開始位置と終了位置を示す 2 タプルの span と、match = '3'のような一致したコンテンツが含まれます。

bool() 関数は、re.search の結果を match object または None から True または False にキャストできます。

実施例

import re

str1 = "python12"
str2 = "nonumber"
str3 = "12345"

print(bool(re.search(r'\d', str1)))
print(bool(re.search(r'\d', str2)))
print(bool(re.search(r'\d', str3)))

出力:

True
False
True

関連記事 - Python String

  • Python で文字列を浮動小数点または整数に変換する方法
  • Python 文字列の空白を削除する方法
  • comments powered by Disqus