Programming

특정 문자의 문자열을 확인하는 방법은 무엇입니까?

procodes 2020. 6. 7. 18:28
반응형

특정 문자의 문자열을 확인하는 방법은 무엇입니까? [닫은]


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

반응형