정규표현식 - 정규식 생성

OROSY·2021년 4월 7일
0

JavaScript

목록 보기
44/53
post-thumbnail

정규식 생성

1. 정규표현식

정규표현식은 이전 포스팅에도 이야기한 것처럼 문자를 검색하고 대체하고 추출하는 방식을 제공하는 다양한 환경에서 사용할 수 있는 기능입니다. 특히, 간단한 문자 검색부터 이메일, 패스워드 검사 등의 복잡한 문자 일치 기능들을 정규식 패턴으로 빠르게 수행할 수 있습니다.

정규표현식은 크게 아래와 같은 역할을 수행합니다.

1. 문자 검색(search)
2. 문자 대체(replace)
3. 문자 추출(extract)

2. 정규표현식 테스트 사이트

실제로 정규표현식을 작성하며 적용할 수 있는 사이트가 있습니다. 아래 사이트를 통해 정규표현식을 활용해볼 수 있습니다.

https://regex101.com/
https://regexr.com/
https://regexper.com/

3. JavaScript 정규식 생성

JavaScript를 통해 정규표현식을 생성하는 방법은 크게 두 가지가 있습니다. 이는 생성자 함수 방식과 리터럴(Literal) 방식입니다.

3.1 생성자 방식

new RegExp('표현', '옵션')
new RegExp('[a-z]', 'gi')
// [a-z]: a-z까지의 영어 소문자를 검색하는 패턴
// gi: g는 일치하는 모든 내용을 검색, i는 대문자와 소문자 구별 없음의 옵션

new 키워드를 통해 생성된 정규표현식이 생성자 방식이며, 이렇게 생성된 결과를 특정한 변수에 받아서 활용할 수 있습니다. 첫 번째 인수로는 '표현의 패턴', 그리고 두 번째 인수로는 '패턴을 어떠한 방식으로 검색할 것인지에 대한 옵션'을 추가할 수 있습니다.

3.2 리터럴(Literal) 방식

/표현/옵션
/[a-z]/gi

생성자 방식과 동일하게 작동하는 리터럴 방식입니다. 위에서 확인할 수 있다시피 생성자 방식보다 간단한 방식으로 작성되므로 이 방식이 사용 빈도가 높습니다.

3.3 사용 예제

const str = `
010-1234-5678
the7632@gmail.com
http://www.omdbapi.com/?apikey=2181d79b&s=frozen
The quick brown fox jumps over the lazy dog.
abbcccdddd
`

const regexp1 = new RegExp('the', 'g') // 일치하는 모든 내용을 검색
console.log(str.match(regexp1)) // (2) ["the", "the"]

const regexp2 = new RegExp('the', 'gi') // 일치하는 모든 내용을 검색하되 대문자, 소문자 구별 없음
console.log(str.match(regexp2)) // (3) ["the", "The", "the"]

const regexp3 = /the/gi // 리터럴 방식으로 정규식 생성
console.log(str.match(regexp3)) // (3) ["the", "The", "the"]
profile
Life is a matter of a direction not a speed.

0개의 댓글