Hello 정규 표현식
정규 표현식이란
정규 표현식이란 쉽게 말해서 문자열을 규칙에 맞게 변화 시켜놓은 것 이다.
우선 우리에게 친숙한 핸드폰 번호를 가지고 정규 표현식을 이해해보도록 하자.
010-1234-1234
대한민국의 일반적인 핸드폰 번호는 위와 같이 생겼다. 잠시 동안만, 이 번호가 핸드폰 번호가 아니라
그냥 숫자라고 생각하고 관찰해보자. 그렇다면 이 번호는 숫자와 대쉬-
로 이루어져 있다는 것이 눈에 들어올 것이다.
따라서 핸드폰 번호는
숫자-숫자-숫자
로 일반화 할 수 있는 것이다. 일단 정규표현식을 만드는 첫 단계를 밟았다. 하지만 이대로 끝내기에는 이르다. 방금 일반화 한 내용대로라면 1234-12345-123456 도 전화번호가 되 버린다. 하지만 우리는 그러한 번호는 핸드폰 번호가 아니란 것을 알고 있다. 좀 더 구체적으로 일반화 해보자.
먼저, 핸드폰 번호는 3자리 숫자, 4자리 숫자, 4자리 숫자가 차례대로 오는 구조이다. 따라서 핸드폰 번호는
[3자리 숫자]-[4자리 숫자]-[4자리 숫자]
이다.
또한, 핸드폰 번호는 010 으로 시작한다. (019, 012 등의 구 핸드폰 번호는 여기서는 무시하도록 하자.) 따라서
010-[4자리 숫자]-[4자리 숫자]
가 최종적으로 ‘핸드폰 번호’를 일반화 한 패턴이 된다. 지금까지 해 온 것을 일련의 기호로 정리한 것이 정규표현식이다.
우선 지금까지 얘기한 핸드폰 번호의 진짜 정규표현식을 소개한다. \d는 ‘숫자’ 를 의미하고, 중괄호 안의 숫자는 개수를 의미한다. 즉 4개의 숫자 라는 의미이다.
010-\d{4}-\d{4}
regexr 과 함께 정규표현식 배우기
이쯤에서 정규표현식을 배우기 딱 좋은 사이트를 소개한다. https://regexr.com/
- Expression 탭은 정규표현식을 적어 넣는 공간이다.
- Text 탭에서 해당 정규표현식에 match 되는 문자열을 강조 표시해 준다.
- Tools 는 여러가지 도구들이 들어 있는데, 기본적으로 선택되어 있는 Explain 은 왜 해당 문자열이 match 되었는지 설명해준다.
지금 부터 이 사이트와 함께 정규표현식의 기본을 공부해 보도록 하자.
핸드폰 번호 매치하기
정규표현식을 배우는 것은 패턴과 매치를 이해하는 것으로부터 시작한다.
먼저 패턴은 앞서 핸드폰 번호의 예에서 보았듯 문자열을 일반화 시켜놓은 것이다.
매치는 해당 패턴과 주어진 문자열을 대조해 보았을 때, 해당 패턴에 부합하는 부분을 일컫는다.
regex의 Expression 탭에 아래 정규표현식을 복사해서 넣어보자.
010-\d{4}-\d{4}
그리고 Text 탭에 자기 핸드폰 번호를 넣어보자. 파란색으로 강조표시가 될 것이다.
강조표시 되었다.
파란색 강조표시에 커서를 올려보면 match 와 range 가 보인다.
- match: 해당 문자열이 매차되었다는 뜻이다.
- range: text 중 해당 매치된 문자열의 범위를 말한다. 0번째 글자 부터 12 번째 글자가 매치되었다는 뜻
Comments