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]
입니다. 이 예제에서는\d
를search()
의 첫 번째 매개 변수로 사용합니다.
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()
을 사용하면 내장 된 문자열 함수보다 빠르게 결과가 생성됩니다. 따라서 큰 값이나 문자열을 다루는 경우 정규식 솔루션이 문자열 함수보다 훨씬 더 최적입니다.
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