파이썬에서 문자열이 숫자를 포함하는지 확인하는 방법

  1. 문자열에 숫자가 포함되어 있는지 확인하기위한str.isdigit의 파이썬 any함수
  2. map()함수
  3. re.search(r'\d')문자열에 숫자가 포함되어 있는지 확인

이 기사에서는 파이썬 문자열에 숫자가 포함되어 있는지 확인하는 방법을 소개합니다.

파이썬 내장 any 함수str.isdigit과 함께 주어진 문자열에 숫자가 포함되어 있으면 True를 반환합니다 그렇지 않으면False를 반환합니다.

주어진 문자열에 숫자가 포함되어 있으면 패턴 r'\d'를 가진 파이썬 정규 표현식 검색 방법은True를 반환 할 수도 있습니다.

문자열에 숫자가 포함되어 있는지 확인하기위한str.isdigit의 파이썬 any함수

any 함수는 주어진iterable의 요소가True이면True를 반환하고, 그렇지 않으면False를 반환합니다.

str.isdigit()는 주어진 문자열의 모든 문자가 숫자이면True를, 그렇지 않으면False를 반환합니다.

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

stringExample에 최소한 숫자가 들어 있으면 stringExamplechr에 대한chr.isdigit()iterable에 적어도 하나의True가 있으므로 위의 코드는True를 반환합니다.

** 작업 예 **

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()함수

파이썬 map(function, iterable) 함수은 주어진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 사이의 숫자를 의미하며 일치하는 것이 없으면 ‘없음’을 반환합니다.

import re

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

match 객체는match의 시작과 끝 위치를 나타내는 2-tuple spanmatch = '3'과 같은 일치하는 내용을 포함합니다.

bool()함수는re.search 결과를match 객체또는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

  • 파이썬에서 문자열에 하위 문자열이 포함되어 있는지 확인하는 방법
  • 파이썬에서 문자열을 날짜 / 시간으로 변환하는 방법