본문 바로가기

2019년 혁신성장 청년인재 집중양성(빅데이터)/PYTHON 공부 - PY4E

PY4E: Chapter 11 Regular Expressions

PY4E - Regular Expressions (Chapter 11 Part 1)

 

https://www.xkcd.com/208/

 

part 1


1. 정규식은 하나의 작은 프로그래밍언어다.
2. 정규식은 조금 더 똑똑하게 검색해보려는 시도다.
3. 정규식은 프로그래밍 가능한 와일드 카드다.
4. 정규식은 함축된 언어로 찾고자 하는 패턴과 매치되는 문자열을 찾아준다.
5. 정규식은 문자를 기준으로 작동한다.

 

6. 몇가지 유효한 문자가 있는데 특별한 의미를 가지고 있는 문자다.
7. 정규식은 파이썬의 일부가 아니지만, 파이썬과 함께 쓰인다.
8. 그렇기 때문에 import re를 해서 가져와야 한다.
9. re.search 매개변수를 받아 문자열 내에서 검색하는 함수다.
10. re.findall 은 문자를 순회하면서 정해진 패턴을 만족하면 추출하는 함수다. 

 

11. ^은 한줄의 시작을 뜻하고
12. .(dot)은 아무 문자와도 매칭되는 와일드 카드
13. 그리고 정규식 중 몇 가지 문자는 앞에 나오는 문자에 영향을 준다.

14. .(dot)*(star):(colon)은 아무문자가 나열되어 있고, :으로 끝나는 문자열을 찾는다.

15.^X.*:는 X로 시작하여서(^X) 아무문자가 나열(.*)되어 있고 :로 끝나는 문자열을 의미

 

16.^X-S+: X-로 시작하여 공백이 아닌 문자(\S) 가 나열되어 :로 끝나는 문자열을 의미


구글 이미지

 

Part 2

 

1. re.findall('[0-9]+', x) x를 매개변수로 하여, 0에서 9로([0-9]) 이루어진 복수의 문자열(+)

2. 작동하는 방식이 양식을 갖고 줄들을 순회하면서 단어를 맞춰보는 것이다.

3. 직관적이지 않은 것처럼 보이지만, 상당히 빠르고 좋다.

4. 탐욕적인 매칭방식으로 인해 항상 큰 값을 선택함. ?를 붙이면 타협적이지 않게 함.

 

5. ^F.+: F로 시작하고(^F) 어떤 문자가 복수 개 나열 되어 있으며(.+) :으로 끝나는 문자열(탐욕적)

6. ^F.+?:  위와 동일, 가장 짧은, 값이 적은 것을 찾음.

7. /S+@/S+ 하나 이상의 공백을 제외한 문자(/S) 두 개가 있고 그 사이에 @가 있다. 

Part3

 

문자열 추출 방법에는 

1.  find로 원하는 문자열의 위치를 찾아서 추출하는 방법
2. 더블 스플릿 , 띄어쓰기로 단어 구분후, ㄷ특정 문자열을 다시 구분하여 단어를 얻음
3. 레귤러 익스프레션 

 

4. '@([^ ]*)'이 있다.@이후에 존재하는공백이 아닌 복수개의  문자(^ )* 추출

5. ^From .*@([^ ]*)   From 으로 시작하는(^From) 공백이 와야 하며 아무 문자가 몇번이든 상관 없이 있을 수 있고(.*) @가 나온다.우리가 추출하려 하는 것은 공백이 아닌 문자가 몇번이든 상관없이 들어갈 수 있다.([^ ]*) 

 

6./$[0-9.]+ 특수문자를 사용하고 싶을 때 특수문자 앞에 를 쓰면, 문자로 인식이 된다.  
7. 복잡하지만, 짜증나겠지만, 숙달되면 굉장히 효과적이고 쓸데가 많다.