본문 바로가기
조회 수 2832 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print Files
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print Files
search: 찾는 문자열을 정확하게 알고 전체 문자열이 아닌 경우 사용
match: 전체 문자열에 맞는 regex를 작성해야 하고 후에 사용할 데이터에 서브그룹핑

data = 'Thu Feb 15 17:46:04 2007::uzifzf@dpyivihw.gov::1171590364-6-8'

1. 위 문자열에서 1171590364-6-8 매치 찾아내기
>>> re.search(r'\d+-\d+-\d+', data).group()
'1171590364-6-8'

2. match를 사용할 경우 전체 행에 맞는 regex 작성
>>> re.match(r'.+\d+-\d+-\d+', data).group() <------ 전체 매치
'Thu Feb 15 17:46:04 2007::uzifzf@dpyivihw.gov::1171590364-6-8'

3. match 사용시 아래와 같이 ()로 서브그룹핑을 하여 필요한 그룹을 출력
>>> re.match(r'.+(\d+-\d+-\d+)', data).group(1)
'4-6-8'

4. 위에서 ()를 사용해 서브그룹핑을 했을 때 기본 좌측에서 우측으로 wildcard가 우선순위로 greedy이므로 앞의 wildcard인 '.+'가 가장 많은 문자들을 매치한다. 그 결과 \d+ 는 최소의 문자만 매치되어 '4-6-8'이 출력된다.

01.png

5. Not greedy로 만들기 위해 ? 연산자를 사용하면 된다. 이 ? 연산자는 *, +, ? 이후에 붙여서 not greedy로 만든다.

>>> re.match(r'.+?(\d+-\d+-\d+)', data).group(1)
'1171590364-6-8'

02.png

Title
List of Articles
번호 제목 글쓴이 날짜 조회 수
58 Python 2.7 in CentOS with no issue (setuptools, pip, virtualenv) Hojung 2014.08.31 3953
57 GUI 기본 file Hojung 2013.04.06 6163
56 Gmail SMTPx2, POP, IMAP Script Hojung 2013.04.06 3937
55 E-Mail 작성 및 발송 스크립트 Hojung 2013.04.06 4268
54 Interactive IMAP4 Script Hojung 2013.04.06 3605
53 SMTP and POP3 Script Hojung 2013.04.06 2647
52 Interactive POP3 Script file Hojung 2013.04.06 3152
51 Interactive SMTP Script Hojung 2013.04.06 2588
50 FTP Download Script Hojung 2013.04.06 7689
49 SocketServer 모듈을 사용해 TCP Server/Client 작성 Hojung 2013.04.06 6006
48 Network Programming - socket() 모듈을 사용해 UDP Server, client 생성 Hojung 2013.04.06 5766
47 Network Programming - socket() 모듈을 사용해 TCP Server, client 생성 Hojung 2013.04.06 28852
46 brew install python on Mac OS X + pyqt, lxml and spynner Hojung 2013.03.29 5528
» Regular Expression (search vs match 그리고 Greediness) file Hojung 2013.03.26 2832
44 Regular Expression - Extension Notations (?...) Hojung 2013.03.26 2651
43 Regular Expression (문자열을 RE를 이용 list 리턴) - split() Hojung 2013.03.26 3577
42 Regular Expression (찾기 및 바꾸기) - sub() and subn() Hojung 2013.03.26 2864
41 Regular Expression (찾기) - findall() and finditer() Hojung 2013.03.26 3792
40 Regular Expression (matching vs searching) Hojung 2013.03.23 9341
39 How to install pip, spynner, macports and py-pyqt4 Hojung 2013.03.22 3987
Board Pagination ‹ Prev 1 2 3 Next ›
/ 3

Designed by sketchbooks.co.kr / sketchbook5 board skin

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5