본문 바로가기

개발/정규표현식

[정규 표현식] 정규 표현식 소개

반응형

 개발자로서, 부끄럽지만 정규표현식에 대해서 잘 몰랐다.

내 입장에서는 다른 공부 해야할 것들에 비해서 정규 표현식은 우선순위가 항상 떨어졌다. 이유는 알면 유용하지만 특수한 상황을 제외하고는 어느정도 대체할 수 있는 수단도 있었기 때문이다. 하지만 점점 시간이 지나면서 정규표현식이 꼭 필요한 상황, 혹은 정규표현식을 꼭 사용해야만 더 유리한 상황을 마주치게 되었다. 어느 순간 부터는 조금씩이라도 알아두어야 겠다는 생각이 들었다.

'손에 잡히는 10분 정규표현식' 책을 가이드 삼아서 챕터 별로 내용을 정리해보고, 코드워즈 문제를 풀면서 더 정리해보려고 한다.

왜 필요한가? 언제 사용하는가?

정규표현식은 특정한 문제를 해결할 목적으로 만들어 졌다. 예를 들면 아래와 같은 문제에 대해서 유용하게 사용될 수 있다.

  1. 텍스트 파일에서 특정 문자열을 찾고 싶을 때,
  2. 폼에 입력되는 데이터의 유효성 체크(주민등록번호, 운전면허번호, 계좌번호, 이메일 등등)
  3. 특정 문자로 치환하고 싶을 때,

등등

사실 위 문제를 해결하기 위해서는 꼭 정규표현식을 쓰지 않아도 된다 그러나 정규표현식을 잘 알고 있을 때, 훨씬 더 쉽게 문제를 해결할 수도 있다. 문제를 풀 수 있는 무기를 하나 더 익히는 과정으로 보면 될 것 같다.

 

어떻게 사용하는가?

그렇다면, 정규 표현식을 사용하는 문제 상황은 어떤 것들이 있을까?

책에서는 정규 표현식 사용에 대해서 아래와 같이 말해준다.

1. 원하는 정보가 어디에 있는지 찾거나(검색)
2. 정보를 찾은 뒤에 편집(치환)하는 것

정리하자면, 정규표현식은 어떤 문자열 속에서 특정 조건에 맞는 문자를 검색 or 치환 하기 위해서 사용이 된다.

 

그래서 정확히 정규표현식은 무엇인가?

책에서는 아래와 같이 말한다.

정규 표현식은 텍스트를 찾고 조작하는데 쓰는 문자열
정규 표현 언어는 그 자체가 언어이지만 대다수 언어처럼 직관적이거나 분명하지는 않다.

정리하면, 특정 문자열을 검색 / 치환 을 최적화 하기 위해서 사용되는 언어 이며 매우 강력하지만, 직관적이진 않다고 볼 수 있을 것 같다.

 


배운 내용을 확인할 수 있는 문제를 풀어보자 :)

문제

1. 정규 표현식은 어느 상황에 사용되는가? 2가지 상황에 대해서 예를 들어서 설명해보자.

더보기

정규 표현식은 문자열에서 '검색' 혹은 '치환'을 목적으로 할 때, 사용이 된다. 대부분의 언어에서 조건문, 특정 메소드를 활용하여서 문제를 해결할 수 있지만 복잡한 조건을 표현할 때는 정규표현식이 더 유용할 때가 있고, 그때는 정규표현식을 써주는 방법이 오히려 가독성에서 더 도움을 줄 수도 있을 것 같다.

검색

  • 특정 텍스트 파일 내에서, 학번에 해당하는 문자열 만 찾아야만 할 때,
  • 특정 텍스트 파일 내에서, 대소문자 문자를 구분하는 특정 문자열을 찾아야할 때,

치환

  • 특정 텍스트 파일 내에서, Lower case로 적힌 알파벳들을 Capital Case로 바꿔줘야 할 때
반응형

'개발 > 정규표현식' 카테고리의 다른 글

[정규 표현식] 문자 집합으로 찾기  (0) 2021.01.05
[정규 표현식] 문자 하나 찾기  (0) 2021.01.05