Lib/re.py 공식문서에서 첫문장에 "Support for regular expressions (RE)." 포현으로 시작한다. 직역하면 "정규식 지원"이다.
- 출처 : https://github.com/python/cpython/blob/3.10/Lib/re.py
- re 모듈은 파이썬 기본 모듈로 정규식을 기본적으로 지원하며, 정규식 일치 여부를 판단하는 연산도 함께 제공합니다.
MDN WEB docs에서는 정규표현식을 “정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴입니다.” 라고 표혀낳고 있습니다
출처 : https://great-developer.tistory.com/228
참조 : https://docs.python.org/ko/3/howto/regex.html#introduction( 파이썬 정규식 관련 공식문서 )
^[a-z0-9_+.-]+@([a-z0-9-]+\.)+[a-z0-9]{2,4}$
[a-zA-Z0-9+-_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
^[a-zA-Z0-9+-_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
\d{3}-\d{3,4}-\d{4}
: 정수 3개 - 정수3~4개-정수4개^01([0|1|6|7|8|9])-?([0-9]{3,4})-?([0-9]{4})$
^(01)\d{1}-\d{3,4}-\d{4}$
(\d{6})[-]\d{7}
^0\d-\d{4}-\d{4}
^[A-Za-z0-9]{6,12}$
: 숫자 문자 포함 6~12자리 이내^.*(?=^.{8,15}$)(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&+=]).*$
:^(?!((?:[A-Za-z]+)|(?:[~!@#$%^&*()_+=]+)|(?=[0-9]+))$)[A-Za-z\d~!@#$%^&*()_+=]{10,}$
:([0-9]{2}(0[1-9]|1[0-2])(0[1-9]|[1,2][0-9]|3[0,1]))
[6자리]^(19[0-9][0-9]|20\d{2})(0[0-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])$
[8자리/00000000]^(19[0-9][0-9]|20\d{2})-(0[0-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$
[8자리/0000-00-00]정규식 객체로 컴파일할수 있으며 이 객체로 match(), search() 등의 메소드 사용 가능
compile은 정의된 패턴이 여러번 사용될경우 효율성이 좋고 한번만 사용할때는 권장하지않는다.
문자열이 패턴에 일치하는 하는지 확인, 어느 한부분이라도 일치하면 일치하는 문자열을 반환하고 일치하지안으면 None를 반환한다
search와 동일하지만 시작부분, 위치 모두동일해야 반환한다.
문자열 안에 패턴에 맞는 케이스를 전부 찾아서 리스트로 반환합니다.
문자열에서 패턴이 맞으면 이를 기점으로 리스트로 분할 해준다. 만약 3번째 인자(최대 split 수)를 지정하면 문자열을 지정한 수 만큼 쪼개고 그 수가 도달하면 쪼개지 않습니다.
문자열에 맞는 패턴을 2번째 인자(교체할 문자열)로 교체
split의 최대 split 수와 동일하게 최대 교체 수를 지정하면 문자열에 맞는 패턴을 교체할 문자열로 교체하고 그 수가 도달하면 더이상 교체하지 않습니다.
참고 : https://docs.python.org/ko/3/library/re.html?highlight=re#module-re
https://brownbears.tistory.com/506