정규식(파이썬) (8) 썸네일형 리스트형 정규식_오라클 -- 1. text 컬럼의 문자열에서 't'로 시작하는 데이터 검색 SELECT * FROM REG_TAB WHERE REGEXP_LIKE(TEXT, '^t'); -- 2. text 컬럼의 문자열에서 't'로 끝나는 데이터 검색 SELECT * FROM REG_TAB WHERE REGEXP_LIKE(TEXT, 't$'); -- 3. 첫번째 't'로 시작하여 5번째 'r'이 있는 데이터 검색 SELECT * FROM REG_TAB WHERE REGEXP_like(TEXT, '^t...r'); -- 4. 숫자로 끝나는 데이터 검색 SELECT * FROM REG_TAB WHERE REGEXP_LIKE(TEXT, '[0-9]$'); -- 5. 숫자로 시작하는 데이타 검색 SELECT * FROM REG_TAB.. Ex09_정규표현식 정규표현식 (Regular Expression) 1. 확장문자 s : 공백문자 (스페이스, 탭 등 ) d : 숫자 D : 숫자가 아닌 문자 -> [^0-9] 와 동일 w : 알파벳, 숫자, 언더스코어(_) -> [A-Za-z0-9] 비슷 W : 알파벳, 숫자, 언더스코어(_)가 아닌 문자 2. 특수문자 * : 0번 이상 + : 1번 이상 ? : 0 또는 1개의 문자 매칭 . : 정확히 1개 문자 매칭 3. 플래스 g : 매칭되는 모든 값을 찾음 i : 대소문자 무시 m : 여러 줄 매칭 ### 추가로 더 정리하세요 ^^ [참고] 파이썬 정규식 표현 : https://wikidocs.net/4308 Ex09_RegEx_pwd.py """ 비밀번호 생성시 의 적합성 체크 1. 비밀번호의 길이는 6-10 2. 숫자와 알파벳으로만 구성되어야 함 3. 대문자와 소문자가 섞여야 함 ( 대문자 1개 이상, 소문자 0개 이상) 4. 위의 조건에 부합하면 잘못된 상황을 출력하고 조건을 모두 만족하면 가능한 비밀번호임을 출력한다. """ import re def pwd_check(pwd): # 여기에 코드 작성 return pwd_check('abcdE') # 길이오류 pwd_check('abcdef') # 대문자 포함하지 않아 오류 pwd_check('Abcdef2') # 성공 pwd_check('Abcdef_2') # 특수문자 포함 Ex09_RegEx_email.py """ 이메일 주소의 적합성 체크 kim@encore.com : 올바른 이메일 kim@encore : 잘못된 이메일 ( . 하나 없어서 ) k!m@encore.com : 잘못된 이메일 ( 특수문자 ! 안됨 ) [참고] ^[]: 시작 [^] : not {2,9} : 최소 2개 최대 9개 {2,} : 최소 2개만 지정하고 최대는 지정하지 않음 $ 끝 """ """ # ? 0개이거나 1개이거나 문자숫자점 문자로 끝내고자합니다.($) pattern = re.compile(r'https?://[\w.]+\w+$') result = list(map(lambda w:pattern.search(w), webs)) #인자가 들어왔을시 인자를 : 뒤로 처리 / map으로 요소를 하나하나 꺼내 계속 #print(result.. Ex09_reg4_compile.py ''' # compile - 동일한 정규표현식을 매번 다시 쓰기 번거로움을 해결 - compile로 해당표현식을 re.RegexObject 객체로 저장하여 사용가능 ''' import re #문자와 하이픈 섞인거 골뱅이 문자 점 pattern = re.compile(r'[\w-]+@[\w.]+') result = pattern.search('test@gmail.com hahaha good') #써치는 첫번쨰꺼하나 파인드올은 모두 if result: print(result.group()) #---------------------------------------- webs = ['http://www.test.co.kr', 'https://www.test1.com', 'http://www.test.com', .. Ex09_reg3_method_findall.py ''' # [참고] 파이썬 정규식 표현 - https://docs.python.org/3/library/re.html - https://wikidocs.net/4308 > re # findall(검색어, 문자열) : 문자열에서 검색어와 일하는 내용들을 리스트로 반환 search가 최초로 매칭되는 패턴만 반환한다면, findall은 매칭되는 전체의 패턴을 반환 매칭되는 모든 결과를 리스트 형태로 반환 ''' import re msg = 'We_are_happy!! You are happy?? Happy2022-2025 안녕' # 소문자를 모두 찾아서 리스트로 반환 # 소문자가 아닌 것들을 모두 찾아서 리스트로 반환 ( 대괄호 안에 ^ ) # +반복 옵셥으로 소문자를 연속해서 찾음 ( 즉, 단어 ) # 대문.. Ex09_reg2_search.py ''' 다른 모든 함수들도 정규식 표현으로 추출 및 검색 가능 # 기본 패턴 - a, X, 9 등등 문자 하나하나의 character들은 정확히 해당 문자와 일치 e.g) 패턴 test는 test 문자열과 일치 대소문자의 경우 기본적으로 구별하나, 구별하지 않도록 설정 가능 - 몇몇 문자들에 대해서는 예외가 존재하는데, 이들은 틀별한 의미로 사용 됨 . ^ $ * + ? { } [ ] \ | ( ) - . (마침표) - 어떤 한개의 character와 일치 (newline(엔터) 제외) - \w - 문자 character와 일치 [a-zA-Z0-9_] - \s - 공백문자와 일치 - \t, \n, \r - tab, newline, return - \d - 숫자 character와 일치 [0-9] - ^ .. Ex09_reg1_method.py """ # [참고] 파이썬 정규식 표현 - https://docs.python.org/3/library/re.html - https://wikidocs.net/4308 > re # raw string - 문자열 앞에 r이 붙으면 해당 문자열이 구성된 그대로 문자열로 변환 # 패턴과 소스를 비교하는 함수 - match() : 패턴의 일치여부 확인 search와 유사하나, 주어진 문자열의 시작부터 비교하여 패턴이 있는지 확인 시작부터 해당 패턴이 존재하지 않다면 None 반환 - findall() : 일치하는 모든 문자열 리스트 반환 search가 최초로 매칭되는 패턴만 반환한다면, findall은 매칭되는 전체의 패턴을 반환 매칭되는 모든 결과를 리스트 형태로 반환 - search() : 첫번째 일치하는 .. 이전 1 다음