● 정규 표현식이란?
: 문자열을 바탕으로 검색해 패턴과 일치하는지 조사하고, 분할하는 문자열 처리 방법입니다.
* 문자 클래스를 정의할 때 대괄호 안에 사용하는 메타 문자
메타 문자 | 설명 |
/ | 이스케이프 문자 |
^ | 부정 (첫 번쨰 문자에 놓여 있을 때만) |
- | 문자 범위 지정 |
* 문자 클래스를 정의할 때 쓰는 대괄호 이외의 메타 문자
메타 문자 | 설명 |
^x | 맨 앞부분 일치 (여러행이라면 행의 맨앞) |
x$ | 맨 뒷부분 일치 (여러행이라면 행의 맨 뒤) |
.x | 임의의 한 문자 (단, 개행 제외) |
x|y | OR을 나타내며, x문자 또는 y문자가 존재여부(선택지의 단락) |
() | 서브 패턴 감싸기 |
x{n} | x문자가 n회 반복 |
x{n,} | x문자가 n회 이상 반복 |
x{n,m} | x문자가 n~m회 반복 |
x? | x문자의 존재여부를 나타내며, x문자가 존재할수도있고 존재하지 않을수도 있음을 나타냄 |
x* | x문자가 0번 또는 그 이상 반복 |
* 지정된 문자열의 범위 중에서 한 문자만을 선택하다는 특수한 의미
('[]' 는 내부에 지정된 문자열의 범위 중에서 한 문자만을 선택하다는 특수한 의미를 가진다. )
메타 문자 | 설명 |
[xy] | x와 y중에 하나만을 나타냄 |
[^xy] | not을 나타내며, x와 y를 제외한 문자를 의미 |
[x-z] | 범위를 나타내며, x~z사이의 문자를 의미 |
* 사전 정의 문자 클래스
사전 정의 문자 클래스 | 의미 |
/d | 숫자를 나타내며, [0-9]와 같음 |
/D | 숫자가 아닌것을 나타냄, [^0-9]와 같음 |
/s | 공백문자를 나타내며, [\n\r\t\x0B]와 같음 |
/S | 공백문자가 아닌것을 나타냄, [^\s]와 같음 |
/w | 영숫자를 나타내며, [0-9a-z-A-Z]와 같음 |
/W | 영숫자가 아닌것을 나타냄 [^\w]와 같음 |
/b | 문자와 공백사이의 문자를 의미 |
/B | 문자왁 공백사이의 문자가 아닌것을 의미 |
* 정규표현식을 쓸때 사용되는 Flag
Flag | 의미 |
g | 대상 문자열 내에 모든 패턴들을 검색 |
i | 대상 문자열에 대해서 대/소문자를 식별하지않는 것을 의미 |
m | 대상 문자열이 다중 라인의 문자열인 경우에도 검색 |
* 후치 옵션
후치 옵션 | 설명 |
i | 알파벳 대/소문자를 구별하지 않는다. |
m | 행 단위로 일치시킨다. |
s | 마침표(.)로 개행문자를 일치시킨다. |
u | 패턴 문자를 UTF-8 인코딩으로 다룬다. |
x | 패턴 속에 있는 공백문자를 무시한다. |
※ 예제
/[0-9] /g
전체에서 0~9 숫자중에 '하나'만의 숫자를 찾음 |
/[no]/g
전체에서 'n' 또는 'o'중 '하나'만의 문자를 찾음 |
/[coffee]/g
전체에서 'coffee'라는 하나의 단어와 매칭되는것을 찾음 |
이메일 /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i
0~9사이 숫자 또는 a~z , A~Z 알파벳 아무거나로 시작하고, 중간에 -,_,.이 존재할수있으며 0~9, a~z , A~Z 반복할 수 있다.
다음으로 '@'가 반드시 존재해야 하고 0~9, a~z , A~Z중 하나가 존재해야하고 그뒤로는 중간에 -,_,.이 존재할수있으며 0~9, a~z , A~Z 반복할 수 있다.
다음으로 '.'이 반드시 존재해야 하고 a~z, A~Z가 2개~3개 존재해야한다.
마지막으로 이모든 정규표현식을 대/소문자 구분하지 않는다. |
일반 전화번호 /^\d{3}-\d{3,4}-\d{4}$/
숫자 3개로 시작해야하며, '-'이 반드시 존재해야 한다. 숫자 3개~4개가 존재하고, '-'이 반드시 존재해야 한다. 숫자 4개가 존재해야한다. |
핸드폰 번호 /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/ 시작을 숫자 01로 시작하고 0,1,6,7,8,9가 or으로 다음에 존재해야한다. '-'이 반드시 존재하고, 0~9 숫자가 3개~4개 존재되어야한다. '-'이 반드시 존재하고 0~9 숫자가 4개 존재해야한다. |
URL ^(https?):\/\/([^:\/\s]+)(:([^\/]*))?((\/[^\s/\/]+)*)?\/?([^#\s\?]*)(\?([^#\s]*))?(#(\w*))?$ |
이메일 주소
(\w+\.)*\w+@(\w+\.)+[A-Za-z]+ |
전자우편 주소
/^[a-z0-9_+.-]+@([a-z0-9-]+\.)+[a-z0-9]{2,4}$/ |
jpg, gif 또는 png 확장자를 가진 그림 파일명
|
날짜 - 예, 8/27/2019 혹은 8/27/19 /^\d{1,2}\/\d{1,2}\/\d{2,4}$/ |
레퍼런스 : https://hamait.tistory.com/342
https://gocoding.tistory.com/93
'Dev. Etc > knowledge' 카테고리의 다른 글
스냅샷(Snapshot) 개념 (0) | 2019.11.24 |
---|---|
데이터 백업(Data Backup) 개념 (0) | 2019.11.23 |
스토리지(Storage) 개념 (0) | 2019.11.22 |
[이 웹 사이트의 보안인증서에 문제가 있습니다.] 메세지 오류 해결 (0) | 2019.11.21 |
HTTP의 기초 지식 ( 요청 & 응답 ) (0) | 2019.11.16 |
GET과 POST의 차이점 (0) | 2019.11.15 |
Http와 Https은 무엇이 다른가? (차이점) (0) | 2019.06.22 |
TCP와 UDP의 개념과 차이점 & 특징 (0) | 2019.06.22 |