본문 바로가기
Computer Science

[Automata] Regular Expression(정규 표현식)

by Henry Cho 2022. 1. 19.
728x90

Regular Expression(정규 표현식)


포스트 난이도: HOO_Junior

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


# Regular expression이란?

 

Regular expression는 한국에서 정규 표현식이라고 불리는 프로그래밍 표현 방법이다.

String에 대한 검색 및 변환을 할 수 있는 표현 방식을 의미한다.

한마디로 Regular expression(정규 표현식)은 복잡한 String(문자열)을 정해진 규칙에 의해 개발자가 쉽게 표현하고 사용할 수 있도록 도와주는 역할을 한다.


# Regular expression을 어디서 사용하나요?

 

한글 문서나, 워드 또는 인터넷 웹사이트 내에서 특정 단어나 문장을 찾고자 할 때 Ctrl+F를 통해 특정 단어를 찾을 수가 있다.

Regular expression은 이와 비슷한 기능을 수행하는데 Programming에서는 Code 유지 관리 면에서 많이 사용하는 기능이다.

 

예를 들어, 프로그래밍 코드를 수정하고 싶을 때, 일일이 변수를 찾아가면 수정하기 어렵다.

특히 프로그램이 Heavy(무겁) 하거나 Complex(복잡) 하면 당연히 코드 자체가 복잡하고 연결되어 있는 다른 코드들도 많다.

물론 이 상황에서 일일이 특정 변수를 찾아내며 코드를 수정해 나갈 수 있겠지만 한 번에 확인하여 수정이 필요한 부분들만 손쉽게 수정한다면 보다 더 효율적인 작업이 된다.

이러한 이유로 Regular expression(정규 표현식)이라는 규칙을 만들어 찾고자 하는 string(문자열) 부분을 바로바로 검색을 통해 확인하고 수정이 가능하도록 만들게 된 것이다.

Regular expression(정규 표현식)은 대중적으로 사용된 프로그래밍 언어들에서 기능을 제공하고 있으며, 파이썬은 표준 라이브러리에서 Regular expression(정규 표현식)에 대한 기능을 포함하여 제공하고 있다.


# Regular expression을 통한 코드 수정의 용이성

 

우리가 사용하는 Programming language(프로그래밍 언어)는 일상 대화에서 사용하는 언어는 아니지만 사실상 개발자를 위해 개발된 언어이다.

그렇다 보니 컴퓨터가 최종적으로 받아들이는 언어는 기계어이지 프로그래밍 언어가 아니다.

개발자가 코드 내에 일부분을 수정한다고 하더라도 컴퓨터는 그게 무엇인지 모른다.

 

예를 들어, variables(변수) 중에 필요 없는 변수가 발생하여 해당 변수를 전체 삭제하려고 한다고 할 때, 컴퓨터에게 variable를 삭제하라고 명령을 내릴 수는 없다.

왜냐하면 컴퓨터는 기계어만을 이해하기 때문이다.

그렇기에 Regular expression(정규 표현식)을 통해 코드의 string(문자열) 부분을 찾고 수정할 수 있는 규칙을 만들어 손쉽게 코드에 대한 수정 및 보완이 가능하다.


# Regular expression의 규칙

 

Regular expression(정규 표현식)에도 사용 방법과 규칙이 존재한다.

Regular expression(정규 표현식)의 규칙을 살펴보면 아래와 같다.

 

1. Regular expression은 모든 string에 대한 부분을 검색이 가능하다.

2. 2개의 Regular expression을 합치더라도 Regular expression에 해당한다.

3. 2개의 Regular expression이 연속적으로 존재하더라도 Regular expression에 해당한다.

4. Regular expression이 반복적으로 표현되어도 Regular expression에 해당한다.

5. 앞선 2,3,4번이 여러 번 반복되더라도 Regular expression에 해당된다.

 

Regular expression에 대한 규칙은 Regular expression tester에서 동일하게 적용되며, 다양한 프로그램이 언어에서도 동일하게 적용되기에 규칙에 대한 이해를 정확히 알고 있어야 과제를 빨리하고 여자 친구를 만나거나, 퇴근을 빨리하고 집에서 여유를 부릴 수 있을 것이다.

위의 이야기는 농담 반 진담 반이지만, 쉬워 보이고 쓸모가 없어 보일 수도 있는 Regular expression이지만, 필자가 항상 강조하듯이 프로그래머는 기초가 튼튼해야 응용이 가능하다.

따라서 Regular expression은 추후에 실무에서 코딩 업무를 한다면, 정말 기본적이고 꼭 알고 잘 활용할 수 있어야 인생이 편해질 것이다.

귀찮겠지만 처음부터 확실히 한 번만 알고 가자.

 

아래는 Regular expression을 잘 설명해놓은 영상이다.

이해가 어렵거나 궁금한 점이 있다면 필자에게 물어보면 된다.

www.youtube.com/watch?v=upu_TeZImN0

[링크1] Regular expression 설명 영상

 

아래 링크는 Regular expression tester이다.

Regular expression 대한 테스트를 할 수 있는 좋은 사이트이다.

Regular expression을 직접 다루어보면서 어떤 식으로 작동하는지 알 수 있다.

혹시나 Regular expression tester 다루는 방법이 궁금하다면, 질문을 남겨두면 추후 포스트를 이어나가겠다.

 

regex101: build, test, and debug regex

An explanation of your regex will be automatically generated as you type.

regex101.com


 

728x90

댓글