Python에서 문자열에 숫자가 포함되어 있는지 확인

Rayven Esplanada 2023년1월30일
  1. 파이썬에서 문자열에 숫자가 포함되어 있는지 확인하려면any()isdigit()함수를 사용하십시오
  2. re.search()를 사용하여 파이썬에서 문자열에 숫자가 포함되어 있는지 확인
Python에서 문자열에 숫자가 포함되어 있는지 확인

이 튜토리얼은 파이썬에서 문자열에 숫자가 포함되어 있는지 확인하는 다양한 방법을 소개합니다.

파이썬에서 문자열에 숫자가 포함되어 있는지 확인하려면any()isdigit()함수를 사용하십시오

내장 함수any()는 이터 러블을 가져와 부울 값으로 읽습니다. 이터 러블에서 하나 이상의 요소가 True로 식별되면 함수는 True를 반환하고 단일 True값이 없으면 False를 반환합니다.

any()함수를 내장 된 문자열 메소드 isdigit()와 결합하여 문자열에 크기 내의 숫자 문자가 포함되어 있는지 확인하여 문자열에 숫자가 포함되어있는 경우 True를 반환합니다.

예를 들어, 하나는 숫자가 있고 다른 하나는없는 문자열 변수 두 개를 선언 해 봅시다. 그런 다음 문자열에 숫자가 포함되어 있는지 확인하는 함수를 선언합니다.

string1 = "String Number One"
string2 = "String Number 2"


def hasNumber(stringVal):
    return any(elem.isdigit() for elem in stringVal)


print(string1, "has number:", hasNumber(string1))
print(string2, "has number:", hasNumber(string2))

코드를 더 짧게하기 위해 동일한 두 함수를 포함하는 람다 함수를 선언하여 문자열을 확인할 수 있습니다.

string1 = "String Number One"
string2 = "String Number 2"


def hasNumber(stringVal):
    return any(elem.isdigit() for elem in stringVal)


print(string1, "has number:", hasNumber(string1))
print(string2, "has number:", hasNumber(string2))

출력:

String Number One has number: False
String Number 2 has number: True

re.search()를 사용하여 파이썬에서 문자열에 숫자가 포함되어 있는지 확인

Python은 모듈 re을 사용하여 정규 표현식을 조작하는 작업을 지원합니다. re.search()함수를 사용하여 주어진 문자열에 숫자가 포함되어 있는지 확인할 수 있습니다.

re.search()는 두 개의 주요 매개 변수를받습니다. 첫 번째는 정규 표현식이고 두 번째는 표현식과 일치하는지 확인할 문자열입니다.

숫자를 일치시키는 데 사용되는 표현식은\d 또는[0-9]입니다. 이 예제에서는\dsearch()의 첫 번째 매개 변수로 사용합니다.

import re

string1 = "Number One Two Three"
string2 = "Number 123"


def hasNumber(stringVal):
    if re.search("\d", stringVal) == None:
        return False
    else:
        return True


print(string1, "contains number:", hasNumber(string1))
print(string2, "contains number:", hasNumber(string2))

함수는 다음과 같이 람다 선언과 삼항 연산자를 사용하여 한 줄로 줄일 수 있습니다.

def hasNumber(stringVal):
    return False if re.search("\d", stringVal) == None else True

출력:

Number One Two Three contains number: False
Number 123 contains number: True

런타임 측면에서 정규식 평가는 내장 문자열 함수를 사용하는 것보다 훨씬 빠릅니다. 문자열의 값이 상당히 크면 문자열 함수를 사용하는 것보다re.search()가 더 최적입니다.

주어진 문자열에서search()함수를 실행하기 전에re.compile()을 사용하여 표현식을 컴파일하면 실행 시간이 더욱 빨라집니다.

compile()의 반환 값을 변수에 넣고 해당 변수 내에서search()함수를 호출합니다. 이 경우search()는 단일 매개 변수, 즉 컴파일 된 표현식에 대해 검색 할 문자열 만 필요합니다.

def hasNumber(stringVal):
    re_numbers = re.compile("\d")
    return False if (re_numbers.search(stringVal) == None) else True

요약하면 내장 함수any()isdigit()를 함께 사용하여 문자열에 숫자가 포함되어 있는지 확인할 수 있습니다.

그러나 정규 표현식 모듈re 내에서 유틸리티 함수search()compile()을 사용하면 내장 된 문자열 함수보다 빠르게 결과가 생성됩니다. 따라서 큰 값이나 문자열을 다루는 경우 정규식 솔루션이 문자열 함수보다 훨씬 더 최적입니다.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

관련 문장 - Python String