2016년 10월 20일 목요일

How to use Python module re, (Regular Expression)

videourl = https://www.facebook.com/heaven/videos/1077026939083974/
위와같은 url에서 heaven 과 video/ 다음에 오는 숫자들만 추리려면 어떻게 해야 할까?
import re
regex = re.compile(r”https://www.facebook.com/(?P<pagename>\w+)/videos/(?P<videoid>\d+)/$”)
matched = regex.search(videourl)
matched.groupdict()
이렇게 하면 {‘pagename’:”asdfsagweaewg”, ‘video_id’:123142141123} 를 반환한다.



음악 파일리스트에서 제목만 추리기



성시경 - [01]TRY TO REMEMBER.mp3
성시경 - [02]아직 난.mp3
성시경 - [03]아무것도 아닌 이야기.mp3
성시경 - [04]그대 창가로 눈부신 아침이 (WITH 박학기).mp3
성시경 - [06]저녁놀.mp3
성시경 - [07]못할꺼야.mp3
성시경 - [09]소박했던 행복했던....mp3
성시경 - [10]희재.mp3
성시경 - [13]아날로그.mp3
성시경 - [14]고백의 날.mp3
성시경 - 내게 오는 길.mp3
성시경-01-그대네요 (with 아이유).mp3
성시경-01-넌 감동이었어.mp3
성시경-01-다시 시작해도 될까요.mp3
성시경-01-여기 내 맘속에.mp3
성시경-01-처음.mp3
성시경-01-처음처럼.mp3
성시경-01-한번 더 이별.mp3
성시경-02-그리운 날엔.mp3
성시경-02-너는 나의 봄이다.mp3
성시경-02-노래가 되어.mp3
성시경-02-별이 진다네.mp3
성시경-02-선인장.mp3
성시경-02-아는 여자.mp3
성시경-02-어디에도.mp3
성시경-02-외워 두세요.mp3
성시경-02-잘 지내나요.mp3
성시경-02-추억이 들린다.mp3
성시경-03-내안의 그녀.mp3
성시경-03-네가 불던 날.mp3
성시경-03-더 아름다워져.mp3
성시경-03-사랑할 땐 몰랐던 것들.mp3
성시경-03-사랑해서 슬픈 날.mp3
성시경-03-소박했던, 행복했던....mp3
성시경-03-안녕.mp3
성시경-03-여우야.mp3
성시경-03-연연.mp3
성시경-03-허락되지 않은 사랑.mp3
성시경-03-희재.mp3
성시경-04-광화문 연가.mp3
성시경-04-난 좋아.mp3
성시경-05-I Believe.mp3
성시경-05-날 위한 이별.mp3
성시경-05-동화(同化).mp3
성시경-05-잃어버린 것들.mp3
성시경-05-차마....mp3
성시경-06-눈물편지.mp3
성시경-06-아니면서.mp3
성시경-06-이렇게라도.mp3
성시경-06-축복.mp3
성시경-07-..바보라죠.mp3
성시경-07-10월(月)에 눈이 내리면.mp3
성시경-07-Baby You Are Beautiful.mp3
성시경-07-For U.mp3
성시경-07-못할 거야.mp3
성시경-07-바램.mp3
성시경-07-소녀.mp3
성시경-07-태양계.mp3
성시경-08-그 아픔까지 사랑한 거야.mp3
성시경-08-그 이름 모른다고.mp3
성시경-08-눈부신 고백.mp3
성시경-08-헤어지던 날.mp3
성시경-08-후회하지 말아요.mp3
성시경-09-Thank You.mp3
성시경-09-그대 내 맘에 들어오면은.mp3
성시경-09-내가 뭐 그렇죠.mp3
성시경-09-비개인 날.mp3
성시경-09-사랑하는 일.mp3
성시경-09-아무것도 아닌 이야기.mp3
성시경-09-좋을텐데.mp3
성시경-10-Show Me Your Love.mp3
성시경-10-고마워.mp3
성시경-10-너의 뒤에서.mp3
성시경-10-새로운 버릇.mp3
성시경-10-소풍.mp3
성시경-11-굿모닝.mp3
성시경-11-그리움.mp3
성시경-11-당신은 참...mp3
성시경-11-사랑이 변하나요.mp3
성시경-12-기억을 나눔.mp3
성시경-12-내가 너의 곁에 잠시 살았다는 걸.mp3
성시경-12-너는 나의 봄이다 (Bonus Track).mp3
성시경-13-계절이 돌아오듯이.mp3
성시경-13-어떤 그리움.mp3
성시경-13-한번 더 이별.mp3
성시경-14-기억상자 (기억이들린다 OST).mp3
성시경-14-두사람.mp3
성시경-14-아는 여자.mp3
성시경-15-그 자리에 그 시간에.mp3
성시경-15-좋을텐데 (Live).mp3
성시경-16-그 날 이후로.mp3
성시경-16-내게 오는 길 (Live).mp3
성시경-17-서른 즈음에 (Live).mp3

위와 같은 파일리스트에서 제목만 추리려고 한다. 

다행히 패턴이 간단한데.. 시작이 성시경으로 시작되고 중간에 파일순서를 나타내는 숫자들이 있다. 
그 숫자들은 - 혹은 [] 으로 감싸져 있고, .mp3 로 끝난다. 

조금 어려움을 겪었는데..

우선 사용한 것들은
  • \s : 문자
  • | : or
  • \d: 숫자
  • .*:나머지 모든것
최종은 다음과 같다.
pt = "성시경(\s-\s|-)(\[\d\d\]|\d\d)(\s\s|-|)(?P.*)"
prog = re.compile(pt) r = prog.search(title) r.groupdict()['name']

댓글 없음:

댓글 쓰기