정규표현식(1)

김현진·2021년 4월 15일
0

정규표현식

목록 보기
1/1

정규 표현식은 뭔가 특수문자를 사용하여 가독성도 떨어지고 거부감이 든다. 하지만 코딩을 하면서 꼭 필요하다고 느낀다.

정의

  • 문자열을 검색하고 대체하는 데 사용 가능한 일종의 형식 언어(패턴)입니다.
  • 자바스크립트에 국한된 것이 아니고 여러언어에서도 많이 사용됩니다..

정규표현식 테스트 사이트

역할

  • 문자검색
  • 문자 대체
  • 문자 추출

정규표현식 생성 방법

RegExp(Regular Expression) 생성자 함수를 호출하여 사용할 수 있습니다.

const a = new RegExp("[a-z]", "gi"); // (표현, 옵션)

const b = /[a-z]/gi // /표현/옵션

총 2가지 방법이 있는데 new RegExp 키워드를 사용하여 만드는 방법과 리터럴 사용하는 방법이다.

간단예제로 정규표현식 연습

const string = 'aaaabbbAAcccCC';

string 변수안에서 a라는 문자열을 찾아보겠습니다.(자바스크립트 메소드를 이용하여 찾을수도 있지만 정규표현식을 연습하기 때문에 정규표현식으로 찾아보겠습니다.)


// new RegExp 사용
let match = new RegExp('a','');

// 리터럴 방식

let match = /a/; // '' 표시는 삭제하고 옵션값이 없으면 제거하면 된다.

console.log(string.match(match));
// output ["a", index: 0, input: "aaaabbbAAcccCC", groups: undefined]

정규표현식을 생성하는 방법은 위에서 언급했듯이 new RegExp 를 사용하거나 //안에 표현 및 옵션값을 적으면 됩니다.

new RegExp(표현, 옵션), /표현/옵션

위의 코드 new RegExp('a', '')는 'a'라는 문자열을 찾고 옵션값은 따로 없다라는것을 표현한것 입니다.(간단한 예제인 만큼 엄청 간단)

마지막으로 찾을때는 match메소드를 이용하여 찾으면 됩니다.

output값을 확인하면 제대로 찾은 것을 확인할 수 있고, output의 0번째 index값 ("a")값만 확인하면 되긴 하지만 output의 다른 인덱스 값도 확인을 해보겠습니다. 1번째 index는 내가 찾을려고 하는 문자열이 어디에 위치하는지(제일 처음 발견한 위치), 2번째 index는 어디서 찾았는지(string변수에서)

output의 값을 ["a", "a", ....] 이런식으로 배열로 몇개가 해당 문자열에 있는지 찾고 싶을때는 옵션값에 g 옵션을 추가해주면 됩니다.

let match = /a/g;

console.log(string.match(match));

// output: (4) ["a", "a", "a", "a"]

또는 대문자도 포함된 A를 찾고 싶다면 i를 추가하여 gi 옵션을 넣어주면 됩니다.(대,소문자 구분 x)

let match = /a/gi;

console.log(string.match(match));

// output: (6) ["a", "a", "a", "a", "A", "A"]

다음은 정규표현식을 다루는 다양한 메소드를 정리해보겠습니다.

참고자료
https://heropy.blog/2018/10/28/regexp

profile
기록의 중요성

0개의 댓글