반응형
정규표현식에 대해서 알아보자.
먼저 기본적인 정규표현식의 표현 방법들을 알아보자.
그룹 과 범위
문자 | 뜻 |
| | 또는 |
() | 그룹 : 여기서 그룹이란 정규표현식으로 찾은 문자가 해당 괄호안에 포함되는 그룹인지 구분 |
[] | 문자셋, 괄호안의 어떤 문자든지 올수있음 |
[^] | 부정 문자셋, 괄호안의 들어가는 문자가 아닐때만 찾음 |
(?:) | 정규표현식으로 찾지만 해당 그룹은 기억하지 않음 |
어떤 문자를 찾을 때 abc,abc,abc 같은 반복되는 그룹으로 이루어지는 녀석을 찾고자 할때 필요한 테크닉 이다.
수량
문자 | 뜻 |
? | zero or one |
* | zero or more |
+ | one or more |
{n} | n번 반복 |
{min,} | 최소 |
{min,max} | 최소 최대 |
abc 와 같은 문자는 3개로 구성되어있다. 이러한 문자를 찾고자 할 때 사용하는 테크닉 이다.
경계 타입
문자 | 뜻 |
\b | 단어 경계 |
\B | 단어 경계가 아님 |
^ | 문장의 시작 |
$ | 문장의 끝 |
YMym YMym 처럼 끝이나 앞에 YM또는 ym으로 시작하는 문자를 찾고 싶을 때 사용하는 테크닉 이다.
문자열 클래스
문자 | 뜻 |
\ | 특수 문자가 아닌 문자 사용 ex) \? |
. | 어떤 글자 (줄바꿈 문자 제외) |
\d | digit 숫자 |
\D | 숫자가 아님 |
\w | word |
\W | word 아님 |
\s | space |
\S | space 아님 |
여러가지 특수 문자들을 의미한다.
기본 적인 정규 표현식의 타입
플래그
플래그(flags)는 정규표현식의 옵션으로 정규식으로 검색하려는 문자 패턴에 추가적인 옵션을 넣어 원하는 문자 검색 결과를 반환하도록 한다.
플래그 | 뜻 |
g | 모든 문자 일치 |
i | 영어 대소문자 구분 하지 않고 일치 |
m | 여러 줄 일치 |
이제는 해당 regexr 만 예를 들어서 알아보도록 하겠다.
regexr | test |
뜻 | 일반적으로 그냥 쓰면 해당 단어와 매칭되는 애를 찾아준다. |
예시 | test hi fire |
regexr | (test|hi)|(And) |
뜻 | 그룹을 사용한다. test hi 는 같은 그룹으로 지정된다. And는 다른 그룹으로 지정된다. |
예시 | test hi fire And |
regexr | gr(e|a)y |
뜻 | gr로 시작하면서 e 또는 a가 포함되는 그룹을 가지고 y로 끝나는 단어를 찾는다. |
예시 | i love gery (gray) |
regexr | gr(?:e|a)y |
뜻 | 위와 마찬가지로 찾는데 그룹으로 지정되지는 않음. 괄호는 비포획 괄호(non-capturing parentheses)라고 불리우고, 정규식 연산자가 같이 동작할 수 있게 하위 표현을 정의할 수 있습니다. |
예시 | i love gery (gray) |
regexr | gr[ead]y |
뜻 | 대괄호를 이용하면 해당 대괄호 안에 만족하는 모든 문자를 의미한다. |
예시 | i love gery (gray) grdy grddy |
regexr | [^a-zA-Z0-9] |
뜻 | 알파벳 대소문자 숫자를 포함하지 않은 모든 문자를 찾는다. 여기서는 공백도 찾음. |
예시 | hi,there,is!me |
regexr | gra?y |
뜻 | 수량에 대한 거다 ? 의 뜻은 없거나 잇거나이다 비슷하게 * + 표현 방법도 있다. |
예시 | gray gry bbdy |
regexr | gra{2,3}y |
뜻 | a라는 문자가 최소 2개 최대 3개 있어야한느 구조다. |
예시 | gray graay graaay graaaay |
regexr | Jm\b |
뜻 | 단어중에 뒤에서만 쓰이는 Jm을 찾고 싶을 때 사용한다. (멀티라인 옵션에 주의해야함 , 글전체냐 \n 마다 사용할거냐) |
예시 | Jm jm JmJmJm Jm |
regexr | Jm\B |
뜻 | 대문자를 쓰면 위에 예시와 반대로 동작한다. Jm이 뒤에서 쓰이지 않는 Jm을 가져온다. |
예시 | Jm jm JmJmJm Jm |
regexr | . |
뜻 | 모든 문자열을 선택 줄바꿈 문자를 제외한 |
예시 | abc test abc defwjwido |
regexr | \[ |
뜻 | 특수문자를 찾을 때 사용 |
예시 | []?abce[ |
regexr | \d |
뜻 | 숫자를 찾는다 마찬가지로 \D 는 숫자가 아닌 것을 찾음. 문자열 클래스 표를 보고 응용 할수 있다. |
예시 | 11abce234 |
고급 예시
regexr | \d{2,3}[- .]\d{3}[- .]\d{4} |
뜻 | 전화번호부 표현 방법 |
예시 | 010-8223-0471 010.8223.0471 02 777 7777 |
regexr | [a-ZA-Z0-9._+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-0].+ |
뜻 | 이메일 이름 부분은 하나이상 알파벳 대시 점 등을 포함하고 특수기호 .이 있고 다시 영어반복 |
예시 | rebin0471@gmail.com jm.hong@kakaocorp.com test@naver.com |
regexr | (?:https?:\/\/)?(?:www\.)?youtube.com\/watch\?v=([a-zA-Z0-9]{11}) |
뜻 | 유튜브의 식별자만 가져옴 ?: 표식으로 해당영역 그룹은 찾지않는것을 확인할 수 있고 결과적으로 마지막 11번째 코드만 가져온다. |
예시 | https://www.youtube.com/watch?v=t3M6toIflyQ http://www.youtube.com/watch?v=t3M6toIflyQ https://youtube.com/watch?v=t3M6toIflyQ youtube.com/watch?v=t3M6toIflyQ |
마지막으로 정규표현식을 아래와 처럼 확인하고 싶다면
아래의 사이트에서 확인해보면 된다.
이외의 정규 표현식을 연습할려면 다음 사이트로
좀더 자세한 정규표현식을 알아보려면 mdn에 가서 확인하세요
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions
반응형
'TOPIC' 카테고리의 다른 글
Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information (0) | 2022.03.22 |
---|---|
쿠버네티스 : 서버를 관리한다는 것 (0) | 2022.01.27 |
js로 현재파일의 모든폴더 조회하고 이동링크 파일 생성하기 (0) | 2021.12.10 |
Node.js 서버에서 Jwt 토큰 사용하기 (1) | 2021.08.05 |
React 프로젝트에 Redux 적용하기 : Redux란?? (0) | 2021.08.02 |