Notice
Recent Posts
Recent Comments
Link
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- suspend
- 학습지
- Android
- CustomTab
- PR
- webflux
- n3문법
- 일본어기초
- github
- 일본어문법
- 안드로이드
- posting
- 책추천
- androidstudio
- jlpt
- 인공지능
- 진짜학습지후기
- 책리뷰
- pullrequest
- 코틀린
- GIT
- 진짜학습지
- rxjava
- ai
- Kotlin
- coroutine
- blog
- KotlinInAction
- errorhandling
- 진짜일본어
Archives
코딩하는 개굴이
정규식을 마스터하자 본문
반응형
정규식을 마스터해보자
본 내용은 elice 파이썬 정규표현식 강의를 기반으로 작성되었음을 알립니다.
re 모듈에 대하여
- 정규식을 사용하기 위해 re 라는 모듈을 import 해야합니다.
- re.compile() 함수는 문자열 패턴을 컴파일해 정규식 객체를 반환한다.
- 특정 정규식을 코드 내에 여러번 사용하고자 할 때, re.compile()으로 정규식 객체를 만들어 활용한다.
pattern = re.compile("hello") print("만든 정규식 객체 활용 : ", pattern.findall(text)) print("객체 사용하지 않음 : ", re.findall("hello",text))
- 특정 정규식을 코드 내에 여러번 사용하고자 할 때, re.compile()으로 정규식 객체를 만들어 활용한다.
- re 모듈의 대표적인 함수
- re.match(pattern, string) : string 시작에서부터 해당 pattern이 존재하는지 검사하여 MatchObject를 반환한다.
- re.search(pattern, string) : string 전체에 pattern이 존재하는지 검사하여 MatchObject를 반환한다.
- re.findall(pattern, string) : string 전체에서 패턴과 매치되는 모든 경우를 찾아 list로 반환한다.
- re.finditer(pattern, string) : string 전체에서 패턴과 일치하는 결과에 대한 iterater 객체를 반환한다. (반환하는게 iterater 인 것의 차이)
- re.sub(pattern, replaceString, string) : string에서 pattern 과 매칭되는 부분을 replaceString으로 수정한 문자열을 반환한다.
- re.subn(pattern, replaceStrnig, string) : re.sub()와 동일한데, 함수의 결과를 (결과 문자열, 교체 횟수) 튜플로 반환한다.
메타 문자
- ^ : 문자열의 시작
- $ : 문자열의 끝
- | : or 조건식
- [] : 문자 클래스
- \d : 숫자를 나타낸다
- \D : 숫자가 아닌 모든 문자를 나타낸다
- \w : 알파벳 대소문자, 숫자, 밑줄을 나타낸다
- \W : \w에 해당하지 않는 문자들을 나타낸다
- \s : 공백, 탭 문자를 나타낸다
- \S : \s 에 매칭되지 않는 모든 문자들을 나타낸다
- \t : 탭 문자
- \v : 세로 탭 문자
- \f : 용지 넘김 문자
- \r : 캐리지 리턴 문자
- \n : 개행 문자를 나타낸다
- \ : escape 문자
- . : 모든 문자를 말한다
- (?i) : 대소문자 무시 (?i)... 혹은 ...(?i) 앞이든 뒤든 상관 없다.
- 예시
"a|e|i|o|u" == "[aeiou]" <=> "[^aeiou]"
수량자
- : 0개 이상
- : 1개 이상
- ? : 0개 또는 1개
- {n} : n개
- {n,m} : n개 이상 m개 이하
- {n,} : n개 이상
그룹
- (base|kick){2} 은 basebase, kickkick, basekick, kickbase 와 매칭됨
- 만들었던 그룹을 재사용 할 수 있다.
- (to)ma\1 -> tomato 로, 만들어진 순서부터 1번째인 to를 재사용한다.
- 비캡쳐링 그룹 : 패턴 문자들을 묶는데, 그룹 단위로 매칭되지 않게 하여 그룹으로 묶인 것들을 따로 구분한다. (?:tom|pot)ato -> (?:)를 사용
- 예시 ) "tomato potato"에 "(pot|tom)ato" 적용시, "pot", "tom"이 출력된다. (그룹으로 캡쳐한 부분이 있으면 이외는 출력하지 않는다. -> ato 는 그룹이 아니므로 출력안됨)
반응형
'기본기 채우기' 카테고리의 다른 글
개발자의 초기 세팅, 필요한 모든 것들! (0) | 2023.02.06 |
---|---|
변수/메서드 네이밍 TIP! (0) | 2022.10.03 |
Map-HashMap, Set-HashSet, Array-List-ArrayList 의 관계 (0) | 2022.09.24 |
JWT 토큰 인증이란? (1) | 2022.09.16 |
Jekyll이란 (0) | 2021.02.21 |
Comments