티스토리 뷰
정규식은 개발자라면 누구나 맞닥뜨리게 되는 표현식으로,
숙련된 개발자라면 이해도와 관계 없이 코드에 이를 사용해 본 경험이 있을 것입니다.
다양한 언어에서 범용적으로 사용되기에 한 번만 제대로 배워 두어도
프로그래밍에 있어 많은 노력과 시간을 단축시켜주는 강력한 도구이지만
정작 한글화된 정규식 관련 자료는 많이 부족한 형편이라 이를 습득하고 실전에서 사용하는데에는
애로사항을 표하거나 난감해 하는 개발자가 많습니다.
정규식이라는 명칭은 언뜻 듣기만 해서는 이것이 정확히 어떤것을 의미하는지 알아채기 힘든데요,
정규식 예제를 보더라도 미리 문법을 모두 숙지하지 않은 이상 암호와 같은 표현으로 인해
실무에서는 이해가 되기는 커녕 오히려 프로그래밍 문법 독해마저 헷갈리게 하는
마법(?)과 같은 현상을 불러일으키기도 합니다.
정규식을 잘 표현해 주는 단 하나의 단어를 꼽자면 "패턴인식" 이라고 할 수 있습니다.
그렇습니다, 정규식은 패턴인식을 위한 문법입니다.
이메일, 전화번호, 아이디, 비밀번호 등 특정한 자릿수를 가지거나 특정 문자가 포함된,
또는 특정한 규격을 가진 텍스트의 패턴을 인식하기 위해 만들어진 문법체계가 바로 정규식이라 할 수 있습니다.
먼저 정규식을 작성하기 전에 정규식을 작성할 그릇을 만듭시다
//
저 샌드위치용 빵 사이에 우리가 원하는 규칙을 넣으면 됩니다.
빵을 다른것으로 교체해서는 안됩니다. 항상 "/"만을 사용합니다.
이제 "A"라는 문자를 인식하는 정규식을 만들어 봅시다
/A/
이 정규식은 String 내의 "A"라는 글자만을 인식합니다.
우리는 위에서 언급한 정규식들이 실제로 어떻게 동작하는지 눈으로 확인해 볼 필요가 있습니다.
REGEX101 https://regex101.com/
위 사이트를 새 창으로 엽니다.
상단 정규식 입력창을 보면 친절하게도 이미 샌드위치용 빵이 고정으로 입력되어 있습니다.
이제 우리는 빵에는 더이상 신경쓰지 말고 내용물에만 신경을 쓰면 됩니다.우리가 마지막으로 연습했던 정규식을 [1. 정규식 입력] 창에 입력해 봅시다.
그리고 하단 테스트 창에 다음 문장을 입력해 봅니다. ([2. 일치패턴 확인] 창에 입력)
Hello World!
Do we have an A?
Hey, Apple!
여기까지 아무 이상없이 따라오셨다면, 결과는 다음과 같이 출력되고 있을것입니다.
/A/ 라는 정규식을 입력함으로써 정규식은 대상 String에서 A를 찾아내게 됩니다.
그리고 위의 사이트는 입력한 규칙에 대한 설명을 영어로 친절하게 안내해주고 있죠.
대부분의 개발자가 영어와 친숙하리라 믿지만 그렇지 않은 경우도 크게 상관 없습니다.
일치된 패턴은 입력한 문장에서 형광펜으로 하이라이트 처리되니까요.
정규식의 핵심은 이것이 전부라고 해도 과언이 아닙니다.
우리가 입력한 패턴을 대상 String에서 찾아내는것. (여기까지가 이번 튜토리얼에서 우리가 한 일입니다.)
그리고 그 찾아낸 패턴을 치환하거나 삭제하거나 추출하여 원하는 대로 사용하는 것.
정규식을 잘 활용할 수 있게 되면 문자열을 다루기 위해 더 이상 프로그래밍 언어의 기본 문자열 함수와
사투(?)를 벌이지 않으면서도, 더 세련되고 심플한 코드를 작성할수 있게 됩니다.
다음 챕터에서는 좀 더 구체적인 사용예를 가지고 정규식을 배워보도록 하겠습니다.
- Total
- Today
- Yesterday
- 리눅스
- 절전모드
- Regex
- 카스퍼스키
- Linode
- ConoHa
- VPS
- 가상서버
- 서버호스팅
- kaspersky
- 최대절전모드
- 정규식
- 백신
- 동영상
- 정품인증
- 무료백신
- 백신추천
- NoSQL
- 절전
- 윈도우10
- 코노하
- 리노드
- 호스팅
- 가상서버호스팅
- 우분투
- ubuntu
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |