옝옹
냠
옝옹
전체 방문자
오늘
어제
  • 분류 전체보기 (84)
    • [LG유플러스]유레카 SW (5)
    • React (20)
    • JS (17)
    • TypeScript (5)
    • CSS & HTML (1)
    • 알고리즘 (11)
    • JAVA (20)
    • GIT (1)
    • 자격증 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • useRef
  • ==
  • fillter
  • 혼자 공부하는 자바
  • java.util패키지
  • 타입변환
  • reduce
  • 자바스트립트
  • 인스턴스멤버
  • indexOf()
  • do-while문
  • map
  • 화살표함수
  • 자바
  • TypeScript
  • switch문
  • join()
  • 접근제한자
  • 정적멤버
  • 타입스크립트
  • continue문
  • reverse() 메서드
  • 기본api클래스
  • map() 함수
  • 혼자공부하는자바
  • 함수선언
  • 백준
  • java
  • js
  • useEffect
  • useState
  • template literal
  • match()
  • 코드스플리팅
  • 노마드코더
  • 자바스크립트
  • sort() 메서드
  • useCallback
  • toFixed
  • break문
  • useMemo
  • While문
  • Node.js
  • 템플릿리터럴
  • JavaScript
  • 리액트를다루는기술
  • 리액트
  • join() 메서드
  • java.lang패키지
  • 변수선언

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
옝옹

냠

[JS] 정규 표현식
JS

[JS] 정규 표현식

2024. 12. 26. 19:56

정규표현식

문자열에서 특정 문자 조합을 찾기 위한 패턴

 

정규식 만드는 법

1. 정규 표현식 리터럴 : 슬래시(/)패턴으로 감싸는 방식

const regex = /pattern/flags;
  • 스크립트를 불러올 때 컴파일 되므로, 실행 도중에 바뀌지 않는 패턴일 때 사용하는 것이 좋음.
  • 일반적인 방법이며, 리터럴을 사용하면 정규 표현식 객체가ㅏ 생성된다.

 

2. RegExp 객체의 생성자 호출 : RegExp 객체의 생성자를 호출하여 만드는 방식

const regex = new RegExp('pattern',flags);
  • 런타임에 컴파일 되기 때문에 실행 도중에 바뀔 수 있는 패턴이나, 사용자 입력에 따라서 유동적으로 바뀔 수 있을 때 활용하는 것이 좋음.

플래그

  • 검색 모드
  • 정규 표현식의 옵션이므로 선택적으로 사용이 가능하다.
  • 순서와 상관없이 하나 이상의 플래그를 동시에 설정할 수 있다.
  • 플래그를 사용하지 않는 경우에는 문자열 내 검색 대상이 1개 이상이더라도 첫번째 조건 대상만을 검색하고 종료하게 된다.

🚩 대표적인 플래그
i (ignore case) : 대소문자를 구별하지 않고 검색한다.
g (global) : 문자열 내의 모든 패턴을 검색한다. (문자열에서 한개만 찾는 것이 아닌 해당하는 모든 것을 찾아줌)
m (multi line) : 문자열의 행이 바뀌더라도 검색은 계속한다.
s (single line) : \n까지 포함한 문자

Pattern 만드는 법

[Groups and Ranges]

1. |  - or

const regex = /red|blue/flags
  •  red 도는 blue인 문자열을 가진 패턴

2. () - 그룹

const regex = /on(1|2)/flags
  • on뒤에 1이나 2가 오는 문자열을 매치시겠다.

3. [] - 문자셋

const regex = /on[123456789]/flags
const regex = /on[1-9]/flags
  • 만약 그룹에서 1,2 둘 중에 하나가 아니라 1 ~ 10까지인 경우

4. [^] - 부정 문자셋

const regex = /^[1-9]/flags
  • 1~9까지 빼고 매치시키는 경우

Quantifiers

1. ? - zero or one : 특정 문자 뒤에 두게 되면 있는 것, 없는 것 둘다 매치 시킨다.

const regex = /ones?/flags

 

  • 이렇게 두었다면 s 가 있는 것, 없는 것 둘다 매치가 된다.
  • 즉, one과 ones 두개가 매치 된다.

2. * -  zero or more 

const regex = /ones*/flags
  • one, ones, oness, onesssssss 이런것들이 매치

3. + - one or more : 없는것은 매치하지 않으며 그 문자는 반드시 하나 이상

const regex = /ones+/flags
  • one은 매치키지 않는다.

4. {n} - n번 반복 : 뚜렷한 개수를 잡아내고 싶은 경우

const regex = /ones{3}/flags
  • onesss
const regex = /(abc){3}/flags
  • abcabcabc

5. {min, max} - 최대 최소

const regex = /ones{3,5}/flags
  • onesss, onessss, onesssss 만을 매치시킨다.
const regex = /ones{3,}/flags
  • 최대를 비워둔다면, 3번 이상 들어간 것을 매치
  • 최소를 비워둔다면 그 반대

Boundary-type

1. \b - 단어 경계

const regex = /\bch/flags
  • 단어 기준으로 ch로 시작하는 단어만을 매치시킨다.
  • /b를 뒤에 두면, 끝나는 것을 매치

2. \B - 단어 경계 제외

const regex = /\Bch/flags
  • \b를 제외한것을 매치
  • string = cheese cheeses check is checking

3. (^) - 문장의 시작 : 문장 기준으로 매치

const regex = /^is/flags;

cheese cheeses check is checking
checking cheese cheeses is check
cheese cheeses check is checking
is check cheese cheeses checking

 

4. $ - 문장의 끝

Character classes (특정 문자)

1. (\) - 특수 문자가 아닌 문자

const regex = /right\?/flags;
  • right? 라는 문자를 찾고 싶을 때

2. (.) - All

const regex = /./flags;
  • 전부 다 매치
(\d) - 모든 숫자
(\D) - 모든 숫자 제외
(\w) - 모든 문자 : 특수문자를 제외한 영어, 한글, 숫자
(\W) - 모든 문자 제외 : 문자에 해당하는 것을 제외한 모든 것
(\s) - 모든 공백
(\S) - 모든 공백 제외

 

 

저작자표시 비영리 변경금지 (새창열림)

'JS' 카테고리의 다른 글

[JS] Redux 리덕스  (1) 2025.01.08
[Javascript] for, foreach  (3) 2024.02.02
[js] toFixed() 메서드  (1) 2023.02.05
[JS] 배열의 순서 (sort()메서드, reverse() 메서드)  (1) 2023.02.03
[JS]BigInt  (0) 2023.01.31
    'JS' 카테고리의 다른 글
    • [JS] Redux 리덕스
    • [Javascript] for, foreach
    • [js] toFixed() 메서드
    • [JS] 배열의 순서 (sort()메서드, reverse() 메서드)
    옝옹
    옝옹

    티스토리툴바