front-end/JavaScript, TypeScript

정규표현식(REGEX)

hojung 2021. 8. 11.
728x90
반응형

정규표현식이란?


정규표현식이란 특정한 규칙을 가진 문자열을 표현해내는 방식을 의미한다. 위와 같이 설명하면 어려울 수 있지만 우리가 흔히 이메일 주소나 url 주소와 같은 형식을 보면 일정한 형식을 가지고 문자열을 배치하지 않는가 그와 같은 형식을 검색하거나 받아들일 수 있는 표현식을 말한다. 

우리가 흔히 웹이나 앱서비스를 개발할 때 회원가입과 같은 기능에서 어떠한 형식을 통해 비밀번호나 아이디를 만들라고 하지 않는가 그 때 많이 쓰는 표현식이다. 

 

아래는 유튜브 주소를 검색하거나 받아들일 수 있는 식이다.

/(?:https?:\/\/)?(?:www\.)?(?:(?:youtu\.?be\/?)(?:\.com\/)?(?:watch\?v\=)?(?:embed)?)([a-zA-Z0-9]{11})/

유튜브 주소는 대략 

https://youtu.be/5U-Ic7JVNzQ 

https://www.youtube.com/watch?v=5U-Ic7JVNzQ 과 같은 주소로 표현이 가능한데 위의 코드는 위의 두 표현방식을 모두 검색하거나 받아들일 수 있다. 

 

1. 정규표현식은 /content/ 사이에 작성되어야한다.

2. ()로 묶이는 것은 한 그룹을 의미한다. 

3. ?:는 그룹화를 하지 않겠다는 뜻이다. 즉 유튜브 키와 같은 특히 중요한 문자열이 있는 경우 ()사이에 있는 문자열은 그룹으로 묶여 반환되게 되는 데 ?:의 연산자를 앞에 붙이면 그룹으로 취급은 하되 반환하지 않는다.

4. 특수 기호 앞에는 \(역슬래쉬)로 특수 기호가 나온다는 것을 알려주어야 한다.

5. ?연산자는 optional mark로 나올 수도 있고 나오지 않을 수도 있다는 것을 의미한다. 

6. 모든 문자를 표현하고 싶다면 []기호 안에 [a-zA-Z0-9]와 같이 적는다. 또한 여러 글자를 받고 싶다면 {}기호안에 받아들이고 싶은 문자열의 개수를 적는다. 

728x90
반응형

댓글