SlideShare a Scribd company logo
1 of 40
Download to read offline
Regular Expression[A-Z]+
PYCON APAC 2016
양민지
MATA COMPANY
minji@matazoo.net
발표자 소개
양민지 / 검객 개발자
현) MATA COMPANY Software Engineer
DEVSISTERS, The Beatpacking Company
NEXON Python 보조강사, Django Girls 코치
발표에 앞서
이 발표에서는 Python3 를 사용합니다.
이 발표로 정규표현식을 완전히 이해할 수는 없습니다
다루는 내용
Why Regex?
간단한 예제 x 3
The re module
연습문제와 성능 팁
그 외 유용한 것들
Why regex?
특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 식
문자열의 검색이나 치환에 편리하다.
100312467“WhySoLonely”“wondergirls”3014725201603062016-03-20T12:00:35+09:00
->“WhySoLonely”“wondergirls”2016-03-20T12:00
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]
[0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|
[01]?[0-9][0-9]?)$/
WHAAAAT?
How to learn regex?
처음에는 복잡하고 읽을수 없어 어렵게 느껴진다.
하지만 정규표현식은 생각보다 어렵지 않다.
간단한 예제 x 3
예제 1
핸드폰 번호 매칭
010-3333-7777
d{3}-d{4}-d{4}
예제 2
웹사이트 주소에서 host 이름 가져오기
http://www.google.com/?q=pycon
http://([^/]*)/?q=pycon
예제 3
이메일 주소에서 아이디 꺼내먹어요
minji@matazoo.net
^([^@]+)@.+$
The re module
re module
Python에서는 re 모듈로 정규 표현식을 처리합니다.
import re
re.search(pattern, string)
re module
>>> re.search(‘abcd’, ‘abcdef’)
<_sre.STR_Match object at 0X120670cc2>
>>> re.search(‘zxc’, ‘abcdef’)
None
다시 만나는 예제 x 3
re.sub()
import re
phone = '010-1234-5678'
re.sub(
r'(d{3}-d{4}-)(d{4})',
r'1****',
phone
)
>>> ’010-1234-****'
re.match()
import re
link = 'http://www.google.com/?q=pycon'
match = re.match(
r’(http://)([^/]*)(.*)’,
link
)
match.group(2)
>>> 'www.google.com'
re.search()
import re
email = 'minji@matazoo.net'
match = re.search('^[^@]*', email)
match.group()
>>> 'minji'
match vs search
import re
sample = '2016pycon'
re.match('[a-z]+', sample)
>>> None
re.search('[a-z]+', sample)
>>> <_sre.SRE_Match object; span=(4, 8), match='pycon'>
re module
re.search(pattern, string, flags=0)
= match되는 첫번째 문자열을 찾아줌
re.match(pattern, string, flags=0)
= string 처음부터 match되는지 확인
re.findall(pattern, string, flags=0)
= string 전체에서 pattern과 일치하는 것을 모두 찾아 list로
돌려 줌
Character classes
. 줄바꿈 문자를 제외한 모든 문자와 매치됨
d 모든 숫자와 매치됨 [0-9]
D 숫자가 아닌 문자와 매치됨 [^0-9]
w 숫자 또는 문자와 매치됨 [a-zA-Z0-9]
(파이썬에선 숫자도 포함)
W 숫자 또는 문자가 아닌 것과 매치됨 [^a-zA-Z0-9]
s 화이트 스페이스 문자와 매치됨
S 화이트 스페이스가 아닌 것과 매치됨
Anchors and Repetition
^abc$ 문자열의 시작/ 문자열의 마지막과 매치됨
* 0회 이상 반복
+ 1회 이상 반복
? 0회 또는 1회
{x} x회 반복 (e.g {3} )
{x,y} x회부터 y회까지 반복
[abc] 문자 집합 중 한 문자를 의미
[^abc] a,b,c 가 아닌 문자
[a-d] a, b, c or d 사이에 있는 문자를 의미
연습문제 풀어봅시다
<html op="news"><head><meta name="referrer" content="origin"><meta
name="viewport" content="width=device-width, initial-
scale=1.0"><link rel="stylesheet" type="text/css" href="news.css?
8h9C3zM9d2ErvunVTkjK">
<link rel="shortcut icon" href="favicon.ico">
<link rel="alternate" type="application/rss+xml"
title="RSS" href="rss">
<title>Hacker News</title></head><body><center><table
id="hnmain" border="0" cellpadding="0" cellspacing="0" width="85%"
bgcolor="#f6f6ef">
<tr><td bgcolor="#ff6600"><table border="0"
cellpadding="0" cellspacing="0" width="100%" style="padding:
2px"><tr><td style="width:18px;padding-right:4px"><a href="http://
www.ycombinator.com"><img src="y18.gif" width="18" height="18"
style="border:1px white solid;"></a></td>
<td style="line-height:12pt; height:10px;"><span
class="pagetop"><b class="hnname"><a href="news">Hacker News</a></
b>
link: https://bugzilla.mozilla.org/show_bug.cgi?
id=1173199#c31 

title: “Our primary goal is to un-fork the Tor Browser”
link: http://siliconangle.com/blog/2016/08/05/watson-
correctly-diagnoses-woman-after-doctors-were-stumped/ 

title: IBM Watson correctly diagnoses a form of leukemia
link: http://gping.io 

title: Show HN: Gping.io – Like TinyURL for your car
link: http://bit-player.org/2016/the-39th-root-of-92 

title: The 39th Root of 92
link: http://www.sciencealert.com/we-just-got-even-
weirder-results-about-the-alien-megastructure-star 

title: Tabby's star is dimming at an incredible rate
우리가 원하는 Output
regex 안쓰고 코딩해보기
re.DOTALL ??
data = ‘<title>nPYCON APAC 2016nnRegular
Expressionsnn</title>n’
re.search(‘<title>(.*)</title>’, data).group(1)
AttributeError: 'NoneType' object has no attribute ‘group'
re.search(‘<title>(.*)</title>’, data, re.DOTALL).group(1)
'nPYCON APAC 2016nnRegular Expressions[A-Z]+nMinji Yangn’
re.compile
그 외 유용한 것들
Vim: Find and Replace
:%s/old/new/g
http://vimregex.com/
1033303 -> 1233303, 1033213 -> 1233213

:%s/103(d{4})/1231/g
str.find vs re.match vs in
http://stackoverflow.com/questions/4901523/whats-a-faster-operation-re-match-search-or-str-find
str.find vs re.match vs in
http://stackoverflow.com/questions/4901523/whats-a-faster-operation-re-match-search-or-str-find
strfind : 0.441393852234
re.match: 2.12302494049
in : 0.251421928406
WHAAAAT?
성능
정규표현식의 성능은 좋지 않다
하지만 코딩은 편리하다
성능이 중요한 코드에는 regex 가 답이 아닐 수 있다
print(“Thank You”)

More Related Content

What's hot

R과 기초통계 : 02.기술통계-자료나타내기
R과 기초통계 : 02.기술통계-자료나타내기R과 기초통계 : 02.기술통계-자료나타내기
R과 기초통계 : 02.기술통계-자료나타내기Yoonwhan Lee
 
R 스터디 두번째
R 스터디 두번째R 스터디 두번째
R 스터디 두번째Jaeseok Park
 
R 스터디 첫번째
R 스터디 첫번째R 스터디 첫번째
R 스터디 첫번째Jaeseok Park
 
RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3Sunwoo Park
 
(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육
(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육
(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육탑크리에듀(구로디지털단지역3번출구 2분거리)
 
클러스터링을 통한 패턴 추출
클러스터링을 통한 패턴 추출클러스터링을 통한 패턴 추출
클러스터링을 통한 패턴 추출kidoki
 

What's hot (8)

3. linked list
3. linked list3. linked list
3. linked list
 
R과 기초통계 : 02.기술통계-자료나타내기
R과 기초통계 : 02.기술통계-자료나타내기R과 기초통계 : 02.기술통계-자료나타내기
R과 기초통계 : 02.기술통계-자료나타내기
 
R 스터디 두번째
R 스터디 두번째R 스터디 두번째
R 스터디 두번째
 
R 스터디 첫번째
R 스터디 첫번째R 스터디 첫번째
R 스터디 첫번째
 
RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3
 
4. stack
4. stack4. stack
4. stack
 
(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육
(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육
(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육
 
클러스터링을 통한 패턴 추출
클러스터링을 통한 패턴 추출클러스터링을 통한 패턴 추출
클러스터링을 통한 패턴 추출
 

Viewers also liked

Django Girls 라이트닝토크
Django Girls 라이트닝토크Django Girls 라이트닝토크
Django Girls 라이트닝토크Minji Yang
 
[20160813, PyCon2016APAC] 뉴스를 재미있게 만드는 방법; 뉴스잼
[20160813, PyCon2016APAC] 뉴스를 재미있게 만드는 방법; 뉴스잼[20160813, PyCon2016APAC] 뉴스를 재미있게 만드는 방법; 뉴스잼
[20160813, PyCon2016APAC] 뉴스를 재미있게 만드는 방법; 뉴스잼Kyunghoon Kim
 
Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Kyoung Up Jung
 
Python 활용: 이미지 처리와 데이터 분석
Python 활용: 이미지 처리와 데이터 분석Python 활용: 이미지 처리와 데이터 분석
Python 활용: 이미지 처리와 데이터 분석용 최
 
2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.
2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.
2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.choi kyumin
 
Python 으로 19대 국회 뽀개기 (PyCon APAC 2016)
Python 으로 19대 국회 뽀개기 (PyCon APAC 2016)Python 으로 19대 국회 뽀개기 (PyCon APAC 2016)
Python 으로 19대 국회 뽀개기 (PyCon APAC 2016)HONGJOO LEE
 

Viewers also liked (6)

Django Girls 라이트닝토크
Django Girls 라이트닝토크Django Girls 라이트닝토크
Django Girls 라이트닝토크
 
[20160813, PyCon2016APAC] 뉴스를 재미있게 만드는 방법; 뉴스잼
[20160813, PyCon2016APAC] 뉴스를 재미있게 만드는 방법; 뉴스잼[20160813, PyCon2016APAC] 뉴스를 재미있게 만드는 방법; 뉴스잼
[20160813, PyCon2016APAC] 뉴스를 재미있게 만드는 방법; 뉴스잼
 
Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자
 
Python 활용: 이미지 처리와 데이터 분석
Python 활용: 이미지 처리와 데이터 분석Python 활용: 이미지 처리와 데이터 분석
Python 활용: 이미지 처리와 데이터 분석
 
2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.
2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.
2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.
 
Python 으로 19대 국회 뽀개기 (PyCon APAC 2016)
Python 으로 19대 국회 뽀개기 (PyCon APAC 2016)Python 으로 19대 국회 뽀개기 (PyCon APAC 2016)
Python 으로 19대 국회 뽀개기 (PyCon APAC 2016)
 

Similar to PyCon APAC 2016 Regular Expression[A-Z]+

Functional thinking - 책 리뷰 1탄
Functional thinking - 책 리뷰 1탄Functional thinking - 책 리뷰 1탄
Functional thinking - 책 리뷰 1탄Jeong-gyu Kim
 
R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작Terry Cho
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차Han Sung Kim
 
Itcookbook Asp Chapter2
Itcookbook Asp Chapter2Itcookbook Asp Chapter2
Itcookbook Asp Chapter2xyzlee
 
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
고등학생 R&E Python summary for test
고등학생 R&E Python summary for test고등학생 R&E Python summary for test
고등학생 R&E Python summary for testKyunghoon Kim
 
자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라Jong Gook Bae
 
Python datatype
Python datatypePython datatype
Python datatype건희 김
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법SeongHyun Ahn
 
Pyconkr2019 features for using python like matlab
Pyconkr2019 features for using python like matlabPyconkr2019 features for using python like matlab
Pyconkr2019 features for using python like matlabIntae Cho
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산S.O.P.T - Shout Our Passion Together
 
Shellscript에 대하여
Shellscript에 대하여Shellscript에 대하여
Shellscript에 대하여Luavis Kang
 
10주차 php 사용하기-iii
10주차 php 사용하기-iii10주차 php 사용하기-iii
10주차 php 사용하기-iiiYoonwhan Lee
 
3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택JinTaek Seo
 

Similar to PyCon APAC 2016 Regular Expression[A-Z]+ (20)

Scala
ScalaScala
Scala
 
Functional thinking - 책 리뷰 1탄
Functional thinking - 책 리뷰 1탄Functional thinking - 책 리뷰 1탄
Functional thinking - 책 리뷰 1탄
 
Haskell study 4
Haskell study 4Haskell study 4
Haskell study 4
 
R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차
 
Itcookbook Asp Chapter2
Itcookbook Asp Chapter2Itcookbook Asp Chapter2
Itcookbook Asp Chapter2
 
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
고등학생 R&E Python summary for test
고등학생 R&E Python summary for test고등학생 R&E Python summary for test
고등학생 R&E Python summary for test
 
Haskell study 5
Haskell study 5Haskell study 5
Haskell study 5
 
자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라
 
DM_02
DM_02DM_02
DM_02
 
이산수학02
이산수학02이산수학02
이산수학02
 
Python datatype
Python datatypePython datatype
Python datatype
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법
 
Pyconkr2019 features for using python like matlab
Pyconkr2019 features for using python like matlabPyconkr2019 features for using python like matlab
Pyconkr2019 features for using python like matlab
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
 
Regex
RegexRegex
Regex
 
Shellscript에 대하여
Shellscript에 대하여Shellscript에 대하여
Shellscript에 대하여
 
10주차 php 사용하기-iii
10주차 php 사용하기-iii10주차 php 사용하기-iii
10주차 php 사용하기-iii
 
3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택
 

PyCon APAC 2016 Regular Expression[A-Z]+

  • 1. Regular Expression[A-Z]+ PYCON APAC 2016 양민지 MATA COMPANY minji@matazoo.net
  • 2. 발표자 소개 양민지 / 검객 개발자 현) MATA COMPANY Software Engineer DEVSISTERS, The Beatpacking Company NEXON Python 보조강사, Django Girls 코치
  • 3. 발표에 앞서 이 발표에서는 Python3 를 사용합니다. 이 발표로 정규표현식을 완전히 이해할 수는 없습니다
  • 4. 다루는 내용 Why Regex? 간단한 예제 x 3 The re module 연습문제와 성능 팁 그 외 유용한 것들
  • 5. Why regex? 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 식 문자열의 검색이나 치환에 편리하다. 100312467“WhySoLonely”“wondergirls”3014725201603062016-03-20T12:00:35+09:00 ->“WhySoLonely”“wondergirls”2016-03-20T12:00
  • 8. How to learn regex? 처음에는 복잡하고 읽을수 없어 어렵게 느껴진다. 하지만 정규표현식은 생각보다 어렵지 않다.
  • 10. 예제 1 핸드폰 번호 매칭 010-3333-7777 d{3}-d{4}-d{4}
  • 11. 예제 2 웹사이트 주소에서 host 이름 가져오기 http://www.google.com/?q=pycon http://([^/]*)/?q=pycon
  • 12. 예제 3 이메일 주소에서 아이디 꺼내먹어요 minji@matazoo.net ^([^@]+)@.+$
  • 14. re module Python에서는 re 모듈로 정규 표현식을 처리합니다. import re re.search(pattern, string)
  • 15. re module >>> re.search(‘abcd’, ‘abcdef’) <_sre.STR_Match object at 0X120670cc2> >>> re.search(‘zxc’, ‘abcdef’) None
  • 17. re.sub() import re phone = '010-1234-5678' re.sub( r'(d{3}-d{4}-)(d{4})', r'1****', phone ) >>> ’010-1234-****'
  • 18. re.match() import re link = 'http://www.google.com/?q=pycon' match = re.match( r’(http://)([^/]*)(.*)’, link ) match.group(2) >>> 'www.google.com'
  • 19. re.search() import re email = 'minji@matazoo.net' match = re.search('^[^@]*', email) match.group() >>> 'minji'
  • 20. match vs search import re sample = '2016pycon' re.match('[a-z]+', sample) >>> None re.search('[a-z]+', sample) >>> <_sre.SRE_Match object; span=(4, 8), match='pycon'>
  • 21. re module re.search(pattern, string, flags=0) = match되는 첫번째 문자열을 찾아줌 re.match(pattern, string, flags=0) = string 처음부터 match되는지 확인 re.findall(pattern, string, flags=0) = string 전체에서 pattern과 일치하는 것을 모두 찾아 list로 돌려 줌
  • 22. Character classes . 줄바꿈 문자를 제외한 모든 문자와 매치됨 d 모든 숫자와 매치됨 [0-9] D 숫자가 아닌 문자와 매치됨 [^0-9] w 숫자 또는 문자와 매치됨 [a-zA-Z0-9] (파이썬에선 숫자도 포함) W 숫자 또는 문자가 아닌 것과 매치됨 [^a-zA-Z0-9] s 화이트 스페이스 문자와 매치됨 S 화이트 스페이스가 아닌 것과 매치됨
  • 23. Anchors and Repetition ^abc$ 문자열의 시작/ 문자열의 마지막과 매치됨 * 0회 이상 반복 + 1회 이상 반복 ? 0회 또는 1회 {x} x회 반복 (e.g {3} ) {x,y} x회부터 y회까지 반복 [abc] 문자 집합 중 한 문자를 의미 [^abc] a,b,c 가 아닌 문자 [a-d] a, b, c or d 사이에 있는 문자를 의미
  • 24.
  • 26.
  • 27. <html op="news"><head><meta name="referrer" content="origin"><meta name="viewport" content="width=device-width, initial- scale=1.0"><link rel="stylesheet" type="text/css" href="news.css? 8h9C3zM9d2ErvunVTkjK"> <link rel="shortcut icon" href="favicon.ico"> <link rel="alternate" type="application/rss+xml" title="RSS" href="rss"> <title>Hacker News</title></head><body><center><table id="hnmain" border="0" cellpadding="0" cellspacing="0" width="85%" bgcolor="#f6f6ef"> <tr><td bgcolor="#ff6600"><table border="0" cellpadding="0" cellspacing="0" width="100%" style="padding: 2px"><tr><td style="width:18px;padding-right:4px"><a href="http:// www.ycombinator.com"><img src="y18.gif" width="18" height="18" style="border:1px white solid;"></a></td> <td style="line-height:12pt; height:10px;"><span class="pagetop"><b class="hnname"><a href="news">Hacker News</a></ b>
  • 28. link: https://bugzilla.mozilla.org/show_bug.cgi? id=1173199#c31 
 title: “Our primary goal is to un-fork the Tor Browser” link: http://siliconangle.com/blog/2016/08/05/watson- correctly-diagnoses-woman-after-doctors-were-stumped/ 
 title: IBM Watson correctly diagnoses a form of leukemia link: http://gping.io 
 title: Show HN: Gping.io – Like TinyURL for your car link: http://bit-player.org/2016/the-39th-root-of-92 
 title: The 39th Root of 92 link: http://www.sciencealert.com/we-just-got-even- weirder-results-about-the-alien-megastructure-star 
 title: Tabby's star is dimming at an incredible rate 우리가 원하는 Output
  • 30.
  • 31.
  • 32. re.DOTALL ?? data = ‘<title>nPYCON APAC 2016nnRegular Expressionsnn</title>n’ re.search(‘<title>(.*)</title>’, data).group(1) AttributeError: 'NoneType' object has no attribute ‘group' re.search(‘<title>(.*)</title>’, data, re.DOTALL).group(1) 'nPYCON APAC 2016nnRegular Expressions[A-Z]+nMinji Yangn’
  • 34. 그 외 유용한 것들 Vim: Find and Replace :%s/old/new/g http://vimregex.com/ 1033303 -> 1233303, 1033213 -> 1233213 :%s/103(d{4})/1231/g
  • 35.
  • 36. str.find vs re.match vs in http://stackoverflow.com/questions/4901523/whats-a-faster-operation-re-match-search-or-str-find
  • 37. str.find vs re.match vs in http://stackoverflow.com/questions/4901523/whats-a-faster-operation-re-match-search-or-str-find strfind : 0.441393852234 re.match: 2.12302494049 in : 0.251421928406
  • 39. 성능 정규표현식의 성능은 좋지 않다 하지만 코딩은 편리하다 성능이 중요한 코드에는 regex 가 답이 아닐 수 있다