실수없이 손 빠르게 코드를 작성하는 능력은 중요함
수 십만의 라인의 텍스트를 원하는대로 쉽게 검색, 치환 할 수 있다면 ‘칼퇴’ 확률이 높아짐
사람이 직접 눈으로 스캐닝하며 찾는 것은 한장이면 해볼만하지만 수백장일 경우 어렵다.
‘윌리 표현식’ 도구를 쓴다면 금세 찾을 수 있을 것이다.
텍스트 검색, 치환에 사용
수십 라인의 프로그래밍 없이 정규식 1~2줄로 대부분의 문자열 작업 가능
선배들의 노하우가 담긴 파워풀한 텍스트 관련 도구
익숙해진다면 손 빠른 개발에 큰 도움을 줄 수 있다.
온전한 프로그래밍 언어는 아님
다른 프로그래밍 언어나 제품에 포함된 ‘작은 언어’의 느낌
제품마다 조금씩 다른 문법
IDE, editor, Ms Word도 지원한다.
colubflare등 웹 방화벽의 중요한 부분에서 정규표현식을 사용하기도 한다.
sw엔지니어에게 외국어 같은 존재
다양한 문제 해결법
친숙해진다면 파워풀한 도구
한땀한땀 매칭하면서 보면 된다.
일반적인 문자 그대로 기재
‘.’와 같은 메타 문자를 검색하려면 ‘\’로 이스케이프
대괄호를 사용하여 문자 집합 표현
[]집합에 속한 문자 가운데 하나가 일치
[]내에 ‘-’은 연속 요소를 표현 [1-5] → [12345]
캐럿(’^’)문자는 집합 안에 있는 문자나 범위를 모두 제외
파워풀한 정규 표현 패턴의 능력
‘+’ : 하나 이상 일치
‘*’ : 없거나 하나 이상 일치
‘?’ : 없거나 하나 일치
중괄호 ‘{}’ 내에 반복 횟수 기재 {3} : 3번
게으른 수량자료 문자를 최소로 일치
텍스트 영역 내 특정 위치에서 검색 희망
‘\b’: 단어 경계
‘^’: 문자열 경계의 시작
‘$’: 문자열 경계의 끝
큰 표현식 안에 속한 일부 표현식을 한 항목으로 다루도록 묶음
‘( )’ : 괄호로 묶음 기능
>{2,} vs (>){2,}
원하는 만큼의 덩어리 묶음
파워풀한 중첩된 하위 표현식
하위 표현식으로 매칭된 타겟을 참조
일치한 부분을 반복해 찾거나 치환에 사용
텍스트를 검색하고 치환하는데 매우 유용
‘There is a ball on on the table.” - 실수로 중복된 전치사?
/(\w+) \1/g
일치 영역을 발견해도 그 값을 반환하지 않는 패턴
실제로는 하위 표현식이며 같은 형식으로 작성
(?=일치할텍스트)
http://project.ssafy.com
ftp://pds.ssafy.com
/.+(?=:slightly_smiling_face:/g
전방 탐색과 동일한 개념으로 방향만 역방향
(?<=일치할텍스트)
http://project.ssafy.com
ftp://pds.ssafy.com
/.(?<=\/\/).+/g
전후방 탐색 동시 사용
<head>
<title>SSAFY GIT<title>
</head>
/(?<=).*(?<\/title>)/g
일반 AP 개발자에게 필요한 내용을 빠르게 습득 가능
마스터 레벨까지 커버하지는 못함
비 개발자도 알아두면 유용한 도구
텍스트를 다루는 작업에 파워풀한 도구
이해가 아닌 체득의 영역