[python] 문자열에 알파벳 문자가 포함되어 있는지 어떻게 확인할 수 있습니까?

문자열에 알파벳 문자가 포함되어 있는지 확인하는 가장 순수한 Python 구현은 무엇입니까?

string_1 = "(555).555-5555"
string_2 = "(555) 555 - 5555 ext. 5555

알파벳 글자가 없으면 어디로 string_1돌아오고 False편지가 있으면 string_2돌아올 것 True입니다.



답변

Regex는 빠른 접근 방식이어야합니다.

re.search('[a-zA-Z]', the_string)


답변

어때 :

>>> string_1 = "(555).555-5555"
>>> string_2 = "(555) 555 - 5555 ext. 5555"
>>> any(c.isalpha() for c in string_1)
False
>>> any(c.isalpha() for c in string_2)
True


답변

islower()문자열에를 사용 하여 (다른 문자 중에서) 소문자가 포함되어 있는지 확인할 수 있습니다. 대문자가 포함되어 있는지 확인하기 위해 or함께 isupper():

아래 : 문자열의 문자 : 테스트 결과 참

>>> z = "(555) 555 - 5555 ext. 5555"
>>> z.isupper() or z.islower()
True

아래 : 문자열에 문자 없음 : 테스트 결과 거짓.

>>> z= "(555).555-5555"
>>> z.isupper() or z.islower()
False
>>> 

모든 문자가 문자 인 경우에만 isalpha()반환하는 혼동 True하지 마십시오.

참고 효모의 광산이 잘 혼합 된 경우를 처리하지 않기 때문에 응답이 완료가 멋지게 광산.


답변

@ jean-françois-fabre가 제공하는 답변이 마음에 들었지만 불완전합니다.
그의 접근 방식은 작동하지만 텍스트에 순전히 소문자 또는 대문자가 포함 된 경우에만 :

>>> text = "(555).555-5555 extA. 5555"
>>> text.islower()
False
>>> text.isupper()
False

더 나은 방법은 먼저 문자열을 대문자 또는 소문자로 입력 한 다음 확인하는 것입니다.

>>> string1 = "(555).555-5555 extA. 5555"
>>> string2 = '555 (234) - 123.32   21'

>>> string1.upper().isupper()
True
>>> string2.upper().isupper()
False


답변

다음과 같은 정규식을 사용할 수 있습니다.

import re

print re.search('[a-zA-Z]+',string)


답변

주어진 문자열에 알파벳이 포함되어 있는지 찾기 위해 위의 각 방법을 테스트하고 표준 컴퓨터에서 문자열 당 평균 처리 시간을 알아 냈습니다.

~ 250ns

import re

~ 3µs

re.search('[a-zA-Z]', string)

~ 6µs

any(c.isalpha() for c in string)

~ 850ns

string.upper().isupper()

주장으로 반대는 수입 을 다시하는 것은 무시할 시간을 소요하고와 검색 다시는 단지 소요 반 시간을 반복 비교 () isalpha에를 도 비교적 작은 문자열.

따라서 더 큰 문자열과 더 많은 수의 경우 re가 훨씬 더 효율적입니다.

그러나 문자열을 대소 문자로 변환하고 대소 문자를 확인하는 것 (즉 upper (). isupper () 또는 lower (). islower () ) 여기에서 승리 합니다. 모든 루프에서 re.search () 보다 훨씬 빠르며 추가 가져 오기도 필요하지 않습니다.


답변

당신은 또한 이것을 할 수 있습니다

import re
string='24234ww'
val = re.search('[a-zA-Z]+',string)
val[0].isalpha() # returns True if the variable is an alphabet
print(val[0]) # this will print the first instance of the matching value

또한 val 변수 가 None을 반환 하면 유의하십시오 . 즉, 검색에서 일치 하는 항목을 찾지 못했음을 의미합니다.