상세 컨텐츠

본문 제목

정규표현식 나만 어려워? - 정규표현식이란 무엇인가

IT

by aloke 2023. 11. 27. 21:39

본문

 

 

정규 표현식이란 무엇인가? 오늘은 회사에서 일하다보니 문자열 뒤에 ?* 이런 문자를 봤다. 엥.. 문자열 이거 잘못된 것 아닌가.. 생각해서 substr로 없애버리고 일하다가 안되고 낑낑 대니 과장이 찾아왔다. 뭐하고 있어요? 네? 아  ㅋㅋ 문자열 뒤에 이상한 글자가 있어서 substr로 잘랐어요 ㅋㅋ 하니까 과장은 갑자기 이마를 탁 쳤다.

 

그리고 나를 자리로 끌고가 정규표현식에 대해 알려주기 시작했다.

 

정규표현식, 그냥 국비 교육과정에서 이름만 들어봤다. 간단한것은 사용해봤으나 무엇이 있는지 전혀 모른다. 입사한지 일주일 정도 됐을 때 과장이 정규표현식을 잘 쓰냐 물었건만... 그게 뭐죠? 하는 표정과 함께 잘모르겠습니다 하하 대답만 했다. 그때 조금 봐둘걸. 아주 부끄러운 상황이 펼쳐져버렸다.

 

자 그럼 정규표현식이란 무엇인가?

 

정규표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 언어라고 볼 수 있다. 좀 더 구체적으로 말하면 우리가 검색이나 문자열을 치환하는 경우 조건문을 사용하지 않고도 간단하게 원하는 결과값을 얻거나 도출해낼 수 있는 식이다. 여기서 우리는 '간단하게' 에 방점을 맞출 필요가 있다. 왜냐하면 결코.. 간단하지 않기 때문이다.

 

그러나 자주쓰는 표현식을 잘 익혀두면 향후에 사용시 아주 편리하다고 한다. 이 포스팅은 그러한 학습의 보고다. 아마 몇개의 포스팅을 거쳐서 쓰지 않을까 싶다.

 

 

이번 포스팅에서는 문자를 대신하는 메타문자를 정리한다.

 

1. ^

문자열의 시작을 표현한다. 문자열이 http로 시작하는 경우에만 매칭된다. 

 

2. [...]

대괄호 안에서 쓰인다면 ^ 뒤에 오는 문자열 패턴과 불일치하는 것을 매칭한다. 예를 들어서 ab[^0-0] 를 쓴다면 ab 뒤에는 숫자가 아닌 것이 오는 것만 온다.

 

3. $

문자열 뒤에 $가 붙어 있으면 해당 문자열로 끝난 것으로만 매칭된다. 즉 dar$ 이라는 정규 표현식을 쓰는 경우 calendar는 매칭되지만 darling 은 매칭되지 않는다.

 

4.\B

B가 아닌 것이 온다. 

 

5. \s

모든 white-space 문자에 매칭된다. 

 

6. \S

white-space 문자를 제외한 모든 문자에 매칭된다.

 

7.\d

모든 숫자를 매칭한다. [0-9]와 동일한 의미가 된다.

 

8. \D

숫자가 아닌 모든 문자를 매칭한다 [^0-9] 와 동일한 의미가 된다.

 

9.\w

단어를 만들 수 있는 문자를 매칭한다.

 

10. \n

이건 쉽다 누구나 아는!

 

 

반응형

관련글 더보기