[JAVA SCRIPT] 정규 표현식

차슈·2024년 4월 19일
0

JAVA SCRIPT

목록 보기
16/24
post-thumbnail

슬래시로 패턴을 감싸서 작성

const re = /ab+c/;

1️⃣ 단순 패턴 사용하기

  • 문자열을 있는 그대로 탐색할 때 사용

/abc/패턴은 문자열에서 정확한 순서로 abc라는 문자의 조합이 나타나는 부분과 일치한다.

"Hi, do you know your abc's? 
"The latest airplane designs evolved from slabcraft."

이 두 문자열에서는 일치 성공
일치하는 부분은 abc

"Grab crab"

일치 실패
문자열로 ab c를 포함은 하는데 정확하게 abc를 포함하는건 아님!


2️⃣ 특수 문자 사용하기

하나 이상의 문자를 찾는다거나 공백을 찾는일에 사용 -> 직접적인 일치 이상의 탐색이 필요할때
예) "a" 이후에 0개 이상의 b, 바로 뒤에 c와 일치해야하면 /ab*c/ 사용

* = 이전 항목의 0번 이상 반복**


3️⃣ 정규표현식 사용하기

매서드설명반환
exec()문자열에서 일치하는 부분을 탐색일치 없음 null
test()문자열에 일치하는 부분이 있는 확인.true/false
match()모든 일치 배열을 담은 배열 반환일치 없음 Null
matchAll()모든 일치를 담은 반복기 반환x
search()문자열에서 일치하는 부분 탐색일치하는 부분의 인덱스, 일치없음 -1
replace()문자열에서 일치하는 부분 탐색 -> 그 부분 대체 문자열로 바꿈x
replaceAll()문자열에서 일치하는 부분 모두 탐색 -> 모두 대체 문자열로 바꿈x
split()정규표현식을 사용해서 문자열을 부분 문자열의 배열로 나눔x
  • 문자열 내부에 패턴 일치하는 부분 알고싶다 = test() / search()
  • 일치하는 부분 존재 배열 반환하고 싶다 = exec() match()

문자열 일치 exec()

const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");

4️⃣ 플래그 활용

  • 전역 탐색이나 대소문자 지정플래그 사용가능
플래그설명
d부분 문자열 일치에 대한 인덱스 생성
g전역탐색
i대소문자 구분 X
m여러줄 탐색
s= 개행문자 .
u유니코드
y대상 문자열 현재 위치에서 탐색

re = /\w+\s/g = 한개 이상의 글자 | 그 뒤에 공백 하나 | 문자열 전체 탐색

const re = /\w+\s/g;
const str = "fee fi fo fum";
const myArray = str.match(re);
console.log(myArray);
// ["fee ", "fi ", "fo "]

예시 1

const str = "fee fi fo fum";
const re = /\w+\s/g;

console.log(re.exec(str)); // ["fee ", index: 0, input: "fee fi fo fum"]
console.log(re.exec(str)); // ["fi ", index: 4, input: "fee fi fo fum"]
console.log(re.exec(str)); // ["fo ", index: 7, input: "fee fi fo fum"]
console.log(re.exec(str)); // null

예시2 match() 사용

console.log(str.match(re)); // ["fee ", "fi ", "fo "]

예시 3

const re = /^(?:\d{3}|\(\d{3}\))([-\/\.])\d{4}\1\d{4}$/;

1. 데이터의 시작점(^)
2. 비캡처 그룹((?:))으로, 1의 뒤를 잇는 세 개의 숫자(\d{3}), 또는(|), 여는 괄호(\()의 뒤를 잇는 세 개의 숫자(\d{3})의 뒤를 잇는 닫는 괄호(\))
3. 캡처 그룹(())으로, 2의 뒤를 잇는 하나의 대시, 슬래시, 또는 마침표
4. 3의 뒤를 잇는 네 개의 숫자(\d{4})
5. 4의 뒤를 잇는, 첫 번째 캡처 그룹에서 기억한 부분 문자열(\1)
6. 5의 뒤를 잇는 네 개의 숫자(\d{4})
7. 데이터의 끝점($)

출처

0개의 댓글