막상 쓰려면 헷갈리는 정규표현식 모음
쉽게 찾을 수 있는 메타 문자(예약어), 전화번호, 비밀번호, 이메일 규칙 외에 종종 사용하는 정규표현식(Regular Expression, regexp)을 모았습니다.
참고
- 정규표현식 기초는 아래 등을 참고하면 좋습니다.
- Apache Zeppelin, Spark 에서는
\
(역슬래쉬)를 두번 써줘야 합니다.\?
를\\?
으로 작성- 문자 그대로의
\
를 쓸때는\\\\
으로 작성
- 정규표현식은 사용 환경(linux, vim, python, javascript, …)에 따라 비슷하면서 다를 수 있기 때문에 사용에 유의해야 합니다.
- 이번 포스트는 아래 사이트의 PCRE 기준으로 작성하였습니다.
- Online regex tester and debugger: PHP, PCRE, Python, Golang and JavaScript
예제
괄호와 괄호 안 문자
\([^)]*\)
특수문자
한글, 알파벳, 숫자를 제외(^)하고 찾기 (negative way)
[^가-힣ㄱ-ㅎㅏ-ㅣa-zA-Z0-9]
특수문자를 찾기 (positive way)
[\{\}\[\]\/?.,;:|\)*~\`!^\-_+<>@\#$%&\\\=\(\’\”\s]
차량번호
^([가-힣]{2})?\s?([0-9가-힣]{1,})\s?[가-힣]\s?[0-9]{4}
특수 차량 제외 차량 번호판/대한민국 - 나무위키
제외할 문자 찾기
^((?!1231|1241).*)
1231, 1241 빼고 모두 통과
위 조건으로는 1231, 1241로 시작하는 모든 코드(12314 등등)가 제외되므로, 동일한 자리수인 경우에만 사용
테[슬쓸]라
다중 공백
\s{2,}
공백 2개 이상
그룹 사용
^(to)(ma)to\2
()를 사용하여 문자열 내에 그룹을 특정 지을 수 있습니다.
^ | (to|po) | (ma) | to | \1 |
---|---|---|---|---|
문자열 시작 | 그룹1 | 그룹2 | 그냥 문자열 | 캡처된 1번째 그룹 재사용 |
캡처된 첫번째 그룹을 재사용하므로 3번째 예시인 po는 해당하지 않습니다.
다 쓰고보니 몇개 안되네요. 필요할 때마다 찾아서 쓰고 머릿속에 남지 않다보니… 기억날 때마다 추가해보겠습니다.
Leave a comment