2017-12-24 3 views
-1

문자열 내에 3, 4 또는 5 개의 연속 대문자를 찾으려고합니다. 그들은 '$'또는 '(' '을 진행할 수 있지만 선택 사항입니다. 아래에 대문자를 처리하는 방법이 있지만'$ '또는'(')로 진행하는 문자를 확인하는 방법을 알아 내지 못했습니다.정규 표현식을 사용하여 문자열에서 대문자 검색

예 : ($ ABC), (ABC), $ ABC는 ABC <는 --- 모두가 그냥 일반 파이썬을 사용

searches = [r'[A-Z]{5}', r'[A-Z]{4}', r'[A-Z]{3}'] 
correct = '$ABCD' 

     for search in searches: 
      confirmed = re.search(search, correct) 
      if confirmed: 
       return confirmed 
      else: 
       return False 

    Process finished with exit code 0 
+2

I 돈. 대문자의 순서를 앞서는 문자가 어떻게 중요한지보아야합니다. 코드, 입력, 출력 및 예상 출력을 게시하십시오. – timgeb

+1

'r '[A-Z] {3,5}' '로 단순화 할 수 있습니다. –

+0

Sci Prog가 대답 해 주셔서 고맙습니다. – Lyrics

답변

2

regex 잔인한 여기 트리거해야

>>> correct = '$ABCD' 
>>> any(correct[i:i+3].isupper() for i in range(0,len(correct)-3,3)) 
True 
>>> correct = "AbCD" 
>>> any(correct[i:i+3].isupper() for i in range(0,len(correct)-3,3)) 
False 
관련 문제