Dev

정규표현식이란?

SambaLim 2019. 1. 16. 23:57
정규표현식이란

서론

놀랍게도 2001년에 출판된 '한 권으로 끝내는 정규표현식(한빛미디어)'의 서문에는 "지난 10여 년간 정규표현식은 놀랍도록 대중화되었다."라고 이야기한다. 현재가 2019년임을 감안했을 때, 무려 정규표현식이 대중화 되고 사랑받은게 30년이 넘어간다는 이야기다. WIKI에 따르면 스티븐 클레이니라는 사람이 1956년에 정규 언어를 기술하였으며 그 이후 여러 도구들에 사용되며 사랑받았다. 도대체 정규표현식이 무엇이길래 오랜기간 사랑받을 수 있었는지 알아보고자 한다.

정규표현식이란?

정규언어

유한 상태 기계로 인식 가능한 언어가 정규 언어(Regular Language)이다. 유한 상태 기계는 한 번에 오로지 하나의 상태만을 가지게 되며, 현재 상태란 임의의 주어진 시간의 상태를 칭한다. 무슨말인지 잘 모르겠지만, 언어에 기본이되는 α, β와 같은 문자 하나하나를 의미한다고 생각하자. (촘스키 위계 클래스를 이해해야함)

정규표현식

문자열에 나타나는 특정 문자 조합과 대응시키기 위해 사용되는 패턴이다. 입력한 문자열에서 특정한조건을 표현할 경우, 우리가 일반적으로 사용하는 조건문을 사용하면 복잡할 수 있지만 이를 쉽게 표현할 수 있도록 한다. 쉽게 표현할 수 있는 만큼 가독성이 떨어져서 표현식을 숙지하지 않으면 이해하기가 어렵다. 우리가까이에서는 비밀번호의 규칙 가져오기, 이메일 형식 일치여부 등에 사용된다.