반응형
특정 문자의 문자열을 확인하는 방법은 무엇입니까? [닫은]
Python2를 사용하여 문자열 값에 정확한 문자가 있는지 어떻게 확인할 수 있습니까? 특히 달러 기호 ( "$"), 쉼표 ( ",") 및 숫자가 있는지 감지하려고합니다.
문자열을 가정하면 s
:
'$' in s # found
'$' not in s # not found
# original answer given, but less Pythonic than the above...
s.find('$')==-1 # not found
s.find('$')!=-1 # found
다른 캐릭터들도 마찬가지입니다.
... 또는
pattern = re.compile(r'\d\$,')
if pattern.findall(s):
print('Found')
else
print('Not found')
... 또는
chars = set('0123456789$,')
if any((c in chars) for c in s):
print('Found')
else:
print('Not Found')
[편집 : '$' in s
답변 추가 ]
사용자 Jochen Ritzel은 사용자 dappawit 의이 질문에 대한 답변에 대한 주석에서 이것을 말했습니다. 작동해야합니다.
('1' in var) and ('2' in var) and ('3' in var) ...
'1', '2'등은 찾고있는 문자로 바꿔야합니다.
하위 문자열 테스트에 연산자 사용에 대한 정보를 포함하여 문자열에 대한 정보 는 Python 2.7 설명서의이 페이지를 참조하십시오 in
.
업데이트 : 이것은 적은 반복으로 위의 제안과 동일한 작업을 수행합니다.
# When looking for single characters, this checks for any of the characters...
# ...since strings are collections of characters
any(i in '<string>' for i in '123')
# any(i in 'a' for i in '123') -> False
# any(i in 'b3' for i in '123') -> True
# And when looking for subsrings
any(i in '<string>' for i in ('11','22','33'))
# any(i in 'hello' for i in ('18','36','613')) -> False
# any(i in '613 mitzvahs' for i in ('18','36','613')) ->True
Abbafei의 게시물에 대한 타이밍의 빠른 비교 :
import timeit
def func1():
phrase = 'Lucky Dog'
return any(i in 'LD' for i in phrase)
def func2():
phrase = 'Lucky Dog'
if ('L' in phrase) or ('D' in phrase):
return True
else:
return False
if __name__ == '__main__':
func1_time = timeit.timeit(func1, number=100000)
func2_time = timeit.timeit(func2, number=100000)
print('Func1 Time: {0}\nFunc2 Time: {1}'.format(func1_time, func2_time))
산출:
Func1 Time: 0.0737484362111
Func2 Time: 0.0125144964371
따라서 코드는 더 작지만 조건부에서는 더 빠릅니다.
문자열이 조합이나 숫자, 달러 기호 및 쉼표로 구성되어 있는지 테스트합니다. 찾고 계십니까?
다시 수입 s1 = '테스트 문자열' s2 = '1234,12345 $' 정규식 = re.compile ( '[0-9, $] + $') (regex.match (s1)) 인 경우 : "s1 일치"인쇄 그밖에: "s1이 일치하지 않습니다"인쇄 (regex.match (s2)) 인 경우 : "s2 일치"인쇄 그밖에: "s2가 일치하지 않습니다"인쇄
s=input("Enter any character:")
if s.isalnum():
print("Alpha Numeric Character")
if s.isalpha():
print("Alphabet character")
if s.islower():
print("Lower case alphabet character")
else:
print("Upper case alphabet character")
else:
print("it is a digit")
elif s.isspace():
print("It is space character")
else :
print ( "비 공간 특수 문자")
참고 URL : https://stackoverflow.com/questions/5188792/how-to-check-a-string-for-specific-characters
반응형
'Programming' 카테고리의 다른 글
두 저장소 간의 차이점 얻기 (0) | 2020.06.07 |
---|---|
Eclipse가 자원을 자동으로 새로 고칠 수 있습니까? (0) | 2020.06.07 |
파이썬의 pprint가 인쇄 대신 문자열을 반환하도록하려면 어떻게합니까? (0) | 2020.06.07 |
Pragma와 Cache-control 헤더의 차이점은 무엇입니까? (0) | 2020.06.07 |
문자열에 특정 텍스트 조각이 있는지 확인 (0) | 2020.06.07 |