[제코베ICT특강 후기]정규표현식 Python으로 톺아보기
특강 소개 및 후기
톺아보기란 샅샅이 더듬어 뒤지면서 찾아본다
는 순 우리말이다.
파이썬을 잘 알지는 못하지만 정규표현식을 배우고싶은 마음에 듣게 된 특강이다. 파이썬을 잘 몰라도 충분히 들을 수 있는 강의였다!
사실 정규식에 대한 자료는 인터넷에 참 많다.
하지만 개발자로서 공부할 게 많다보니 정규식은 사용에 의해… 꼭 필요한 때만 급하게 공부하게 되어버린다.
언젠가 공부해야지라고 생각만했었는데 이호준대표님의 특강덕분에 정규식에 한 발 가까워졌다.
물론 자유자재로 사용하려면 한참 멀었지만 기초를 다질 수 있어 참 유익했다.
- 노션 교안 : https://www.notion.so/1c57fc683c33468d95e7a490b6f66c95
교안 목차를 차근차근따라가다보면 어느새 카카오 코딩테스트와 비슷한 문제까지 풀어본 게 된다!
정말 좋은 자료이다!
정규표현식
- 실습사이트: https://regexr.com/5nvc2
이호준대표님이 미리 넣어주신 데이터를 가지고 정규표현식을 연습할 수 있는 실습사이트이다.
왼쪽 메뉴바의 Cheatsheet을 통해서 각 정의 및 기능을 확인할 수 있다.
교안의 실전부분을 실습사이트에서 직접 진행해보면서 정규표현식 기초를 익힐 수 있다.
팁
강의 중의 기억하고싶은 팁들이다.
/^문자/gm
: 문자로 시작하는것/문자$/gm
: 문자로 끝나는것/^문자$/gm
주로 위의 둘을 함께 사용한다./... .../gm
: 3글자와 띄어쓰고 그다음 3글자를 찾을 수 있다./h[ea]llo/gm
: 택일 기능으로 hello와 hallo 두 개 다 찾는다.[a-z].a
: 총 3글자이고 첫번째글자는 a-z, 두번째는 모든 글자, 마지막글자는 a인 문자열을 찾는다?
는 위치에 따라 의미가 다르다.
서브패턴
제일 재미있던 부분은 서브패턴이었다.
grouping 규칙 | 사용법 | 예시 |
---|---|---|
(?:abc) | 캐치는 되지만 그룹을 사용하지 않음 | |
(?=abc) | (Positive 매칭) 그룹으로 설정(Lookahead) | hello(?=world)/gm 뒤에 world가 오는 hello를 찾음 |
(?!abc) | (Negative 매칭) 그룹으로 설정(Lookbehind) | hello(?!world)/gm 뒤에 world가 오지않는 hello를 찾음 |
Google Colab
주실습은 코랩을 사용했다.
코랩은 예전에 한국코드페어 특강때 잠깐 다뤄본 적이 있다.
만약 파이썬을 아예 모른다면 자바스크립트를 이용하는 실습 방법도 노션 교안에 다 나와있다! 교안이 잘되어있었기에 따로 필기를 할 필요가 없었다. 세상친절!
팁
강의 중의 기억하고싶은 팁들이다.
- 가장 많이 사용하는 메서드는
re.compile('패턴').findall(문자열)
이다. 정규식에 매칭되는 리스트를 반환한다. - 교안의 연습문제 중 주사위문제가 2018년 카카오 코딩테스트와 비슷한 수준의 문제이다.
- 교안의 연습문제에 대한 답은 주피터노트북에 나와있다.
압축 문제
재미있던 문제는 압축문제였다.
for와 if를 이용하여 풀 수 있지만 정규표현식으로 더욱더 간단하게 풀 수 있었다.
그리고 또 한 번 느끼는 건데 코테할때는 파이썬이 짱이다. 이렇게 간단할수가!
- 문제: aaabbccc는 a3b2c3로 압축된다. 압축된 문자열을 정규표현식을 사용하여 다시 풀어보시오
1 | //풀이1 |
위를 더 간단하게 한 줄로 풀수도 있다.
1 | //풀이2 : 한줄버전 한줄버전 |