python
정규표현식 연습 2. 반복
easy16
2019. 12. 26. 23:35
import re #반복을 나타내는 기호 # ? 앞문자가 문자가 0 또는 1번 (0 or 1) # * 앞문자가 0번 또는 그이상 (0 or 1 more) # + 앞문자가 1번 또는 그이상 (1 more) #패턴 정의 pattern1 = re.compile('D?ABC')# ABC or DABC pattern2 = re.compile('D*ABC')# ABC or DDABC or DDDABC.... pattern3 = re.compile('D+ABC')# DABC or DDABC or DDDABC... string = 'DDDDDDDd ABC' print('======ex) ',string) print(pattern1.search(string)) print(pattern2.search(string)) print(pattern3.search(string)) string = 'DDDDDDDd DABC' print('======ex) ',string) print(pattern1.search(string)) print(pattern2.search(string)) print(pattern3.search(string)) string = 'DDDDDDDd DDABC' print('======ex) ',string) print(pattern1.search(string)) print(pattern2.search(string)) print(pattern3.search(string)) string = 'DDDDDDDd DDDABC' print('======ex) ',string) print(pattern1.search(string)) print(pattern2.search(string)) print(pattern3.search(string)) #결과 ======ex) DDDDDDDd ABC re.Match object; span=(9, 12), match='ABC' re.Match object; span=(9, 12), match='ABC' None ======ex) DDDDDDDd DABC re.Match object; span=(9, 13), match='DABC' re.Match object; span=(9, 13), match='DABC' re.Match object; span=(9, 13), match='DABC' ======ex) DDDDDDDd DDAABC re.Match object; span=(12, 15), match='ABC' re.Match object; span=(12, 15), match='ABC' None ======ex) DDDDDDDd DDDABC re.Match object; span=(11, 15), match='DABC' re.Match object; span=(9, 15), match='DDDABC' re.Match object; span=(9, 15), match='DDDABC'
import re #반복을 나타내는 기호 # {n} 앞문자가 n번 반복 # {m,n} 앞문자가 m번 이상 n번 이하 반복 #패턴 정의 pattern1 = re.compile('D{1}ABC') pattern2 = re.compile('D{2,5}ABC') string = 'DDDDDDDd ABC' print('======ex) ',string) print(pattern1.search(string)) print(pattern2.search(string)) string = 'DDDDDDDd DABC' print('======ex) ',string) print(pattern1.search(string)) print(pattern2.search(string)) string = 'DDDDDDDd DDABC' print('======ex) ',string) print(pattern1.search(string)) print(pattern2.search(string)) string = 'DDDDDDDd DDDABC' print('======ex) ',string) print(pattern1.search(string)) print(pattern2.search(string)) string = 'DDDDDDDd DDDDDDABC' print('======ex) ',string) print(pattern1.search(string)) print(pattern2.search(string)) #결과 ======ex) DDDDDDDd ABC None None ======ex) DDDDDDDd DABC re.Match object; span=(9, 13), match='DABC' None ======ex) DDDDDDDd DDABC re.Match object; span=(10, 14), match='DABC' re.Match object; span=(9, 14), match='DDABC' ======ex) DDDDDDDd DDDABC re.Match object; span=(11, 15), match='DABC' re.Match object; span=(9, 15), match='DDDABC' ======ex) DDDDDDDd DDDDDDABC re.Match object; span=(14, 18), match='DABC' re.Match object; span=(10, 18), match='DDDDDABC'
import re #패턴 정의 pattern1 = re.compile('[가-힣]')#한글 패턴 찾기 pattern2 = re.compile('[^가-힣]')#한글 패턴이 아닌것 찾기 string = "안녕hello" print(pattern1.search(string)) print(pattern2.search(string)) #결과 re.Match object; span=(0, 1), match='안' re.Match object; span=(2, 3), match='h'
import re #첫번째 단어를 리턴 pattern1 = re.compile('[a-zA-Z]+') print('ex1)') string = "hello world" print(pattern1.search(string))#문자열 전체를 검색하여 정규식에 해당하는 패턴을 리턴 print(pattern1.match(string))#문자열 처음부터 검색하여 정규식에 해당하는 패턴을 리턴 print('ex2)') string = "11hello world" print(pattern1.search(string))#문자열 전체를 검색하여 정규식에 해당하는 패턴을 리턴 print(pattern1.match(string))#문자열 처음부터 검색하여 정규식에 해당하는 패턴을 리턴 #결과 ex1) re.Match object; span=(0, 5), match='hello' re.Match object; span=(0, 5), match='hello' ex2) re.Match object; span=(2, 7), match='hello' None