[정글 week01] 파이썬 정규 표현식

Woody Jo·2025년 5월 18일

kjungle

목록 보기
2/31

정글에 온지 일주일이 흘렀다.

미니 프로젝트를 3박 4일 동안 진행하였다.

멱살 캐리 당한 느낌으로 마무리 당했고, 새로운 조원들과 함께 매일 코어 타임을 가지며 현재 week01 주차를 보내고 있다.

코어 타임이란 무엇인가?

코어 타임은 유연근무제와 함께 도입되는 경우가 많습니다.
유연근무제는 근로자가 자신의 출퇴근 시간을 자유롭게 선택할 수 있는 제도이지만,
코어 타임은 모든 직원이 함께 근무해야 하는 시간대를 정합니다.

그렇다.

하지만 우리는 정글러이기에 알아서 출근하고 저녁 10시에 약 1시간 학습 내용을 공유하는 시간을 갖기로 했다.

어찌됬든, 정규식에 관한 글을 쓰고자 한다.


정규식은 매번 볼 때마다 매번 새롭다...

나만 그런가(?)

혹은 제대로 공부하지 않았기 때문인가?

[] 문자 클래스

문자 클래스를 만드는 메타 문자인 [] 사이에는 어떤 문자도 들어갈 수 있다.

여기서 메타 문자란 무엇인가?

    • ? $ ^ . () | \ {} [

다양한 기호(?) 메타 문자들이 있다.
정규식에서 각각의 역할을 갖고 있다.

[a-zA-Z][0-9]

다들 많이 보셨을거라 생각한다.

쉽게 얘기하면
0부터 9까지 모든 숫자를 표현
a부터 z, A부터 Z까지이다.

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

이렇게 사용하지 않고 편하게 사용할 수 있게 한다.

자주 사용하는 문자 클래스

  • \d - 숫자와 매치된다. [0-9]와 동일한 표현식이다.
  • \D - 숫자가 아닌 것과 매치된다. [^0-9]와 동일한 표현식이다.
  • \s - 화이트스페이스(whitespace) 문자와 매치된다. [ \t\n\r\f\v]와 동일한 표현식이다. 맨 앞의 빈칸은 공백 문자(space)를 의미한다.
  • \S - 화이트스페이스 문자가 아닌 것과 매치된다. [^ \t\n\r\f\v]와 동일한 표현식이다.
  • \w - 문자+숫자(alphanumeric)와 매치된다. [a-zA-Z0-9_]와 동일한 표현식이다.
  • \W - 문자+숫자(alphanumeric)가 아닌 문자와 매치된다. [^a-zA-Z0-9_]와 동일한 표현식이다.
    출처 : https://wikidocs.net/4308

여기서 특이한 것은 대문자는 소문자 기능의 반대임을 볼 수 있다.

^란?

[^0-9]

^ 글자가 들어간 것을 많이 보지 않았던가?
여기서 ^의 의미는 숫자가 아닌 문자만 매치한다는 의미

.(dot) 문자

\n을 제외한 모든 문자를 매치한다.

a.b

\n가 아니라면 aab, asb, a8b와 같이 중간에 어떤 글자가 들어가도 상관이 없다.

* 0번 이상 반복하는 문자

*앞에 있는 문자가 0번 이상 반복될 수 있다.

do*g

o가 0번 이상 반복될 수 있다는 의미
0번 이상? 없어도 된다는 건가?
맞다.
dog에서 dg만 있어도 만족한다.

+ 1번 이상 반복하는 문자

+는 *와 같지만 반복 횟수가 다르다

do*g

위에서 본 것처럼 dg는 여기서 어떻게 될까?
당연히 1번 이상이기에 만족하지 못한다.
dog부터 매치가 된다.

{} 문자

{m, n} 정규식을 반복한다.
{m, } 이렇게 사용도 하고, {, n} 이렇게 사용도 한다.

전자는 m번 이상인 경우,
후자는 0번 이상 n번 이하인 경우다.

또한 같이 사용될 경우, m번 이상, n번 이하인 것이다.

? 있어도 되고 없어도 되는 문자

ac?e

인 경우 ace도 되고 ae도 된다.

정규식을 하면서 ?를 많이 보았던거 같은데, 그런 뜻이였군.

profile
developer

0개의 댓글