필자는 개발자 출신이자, 현재 운영팀에서 일하고 있다.
어느 영역에서 일하든 IT 인이라면, 잊을만하면 생각나고, 사용할 때가 된다.
하지만 자주 사용하지 않는 정규 표현식은 매번 찾아볼 수밖에 없는 마성의 매력을 가지고 있달까.
정규 표현식의 기본 문법과 테스트할 수 있는 추천 사이트를 소개한다.
자주 사용하는 정규 표현식
- 이메일 : /(\w+\.?|-?\w+?)+@\w+\.?-?\w+?(\.\w{2,3})+/g
- 휴대폰 : ^\d{2,4}-?\d{2,4}-?\d{2,4}$
- 주민등록번호 : \d{6} \- [1-4]\d{6}
- IP주소 : ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3})
- 숫자만 허용 : ^[0-9]*$
- 영어와 숫자만 허용 : ^[0-9a-zA-Z]$ 또는 ^\\w$
- 영문만 허용 : ^[a-zA-Z]*$
- 한글만 허용 : ^[가-힣]*$
- 파일 확장자 : ^\\S+.(?i)(txt|pdf|hwp|xls)$
- 비밀번호 (숫자, 문자, 특수문자 포 8~15자 이하) : ^.*(?=^.{8,15}$)(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&+=]).*$
Regular ExpressionDescription
. | 어떤 문자 1개를 의미 |
^exp | ^ 다음 exp로 line을 시작하는지 |
exp$ | $ 앞의 exp가 line의 마지막으로 끝나는지 |
[abc] | a, b, c 중의 문자 1개 |
[abc][vz] | a, b, c 중에 문자 1개와 v, z 중에 문자 1개의 조합 |
[^abc] | a, b, c를 제외한 문자 1개 |
A|B | A 또는 B |
\d | 0~9 사이의 숫자, [0-9]와 동일 |
\D | 숫자가 아닌 어떤 문자, [^0-9]와 동일 |
\s | whitespace 1개, [\t\n\x0b\r\f]와 동일 |
\S | whitespace를 제외한 문자 |
\w | Alphanumeric(alphabet, 숫자) 문자, [a-zA-Z_0-9]와 동일 |
\W | Alphanumeric을 제외한 문자(whitespace 등) |
\S+ | whitespace를 제외한 여러 문자 |
\b | 단어의 경계(공백)를 찾습니다 |
$ | 문자열의 종 |
^ | 문자열의 시작 |
. | 임의의 한 문자 (문자의 종류 가리지 않음, 단, \는 넣을 수 없음) |
* | 앞 문자가 없을 수도 무한정 많을 수도 있음 |
+ | 앞 문자가 하나 이상 |
? | 앞 문자가 없거나 하나있음 |
[] | 문자의 집합이나 범위를 나타내며 두 문자 사이는 - 기호로 범위를 나타낸다. []내에서 ^가 선행하여 존재하면 not을 나타낸다. |
{} | 횟수 또는 범위를 나타낸다. |
() | 소괄호 안의 문자를 하나의 문자로 인식 |
| | 패턴 안에서 or 연산을 수행할 때 사용 |
1. 아래 사이트는 가장 자주 사용하는 정규 표현식 테스트 사이트다.
정규식을 내 마음대로 사용해 보고, 예시를 통해 바로 검증할 수 있어서 초보자 IT 인도 쉽게 접근할 수 있다. UI 도 깔끔하고, 이뻐서 자주 사용하고 싶어 하는 사이트다. 또한 나의 패턴을 저장할 수 있어서, 이메일, 휴대폰, URL 패턴 등 자주 사용하는 패턴을 저장해 두자!!
http://www.regexr.com
2. 언어별 정규표현식 형식을 알 수도 있고, 라이브러리도 포함되어 있어서, 자주 사용되는 정규표현식을 조회할 수 있어서, 여러 가지 패턴을 쉽게 익힐 수 있는 사이트다. 다양한 패턴을 저장할 수 있는 기능이 있기 때문에, 이 기능만 잘 사용하면, 자주 사용하는 패턴에 대해서 구글링을 하지 않아도 되고, 매일 찾지 않아도 된다.
https://regex101.com/
3. 이 사이트는 루비기반 정규식 테스트 사이트인데, 잘 모르겠다. 하지만, 정규 표현식 자체는 거의 동일해서 사용하는데 문제는 없어 보인다. 필자 같은 경우는 UI 도 매우 신경 쓰는 편인데, 아래 사이트는 검은색, 노란색이 너무 터미널 같아서, 익숙해 보이는데, 이쁜 게 더 좋다. 그래서 필자는 1번 사이트 아니면 2번 사이트를 자주 사용하고 있다.
https://regexper.com/
'Linux' 카테고리의 다른 글
[Ubuntu] 우분투 최초 yum 설치 (2) | 2023.01.21 |
---|---|
[리눅스] unrar 설치 및 사용법 (2) | 2023.01.17 |
[Linux] 리눅스, 우분투 Chrome Driver 설치 (0) | 2023.01.11 |
[Linux] 리눅스, 우분투 tcpdump 사용 (6) | 2023.01.09 |
[Linux] 리눅스, 우분투 pem, der 인증서 내용 확인 (4) | 2023.01.09 |