DAY-42 정규표현식

1 minute read

🚀 정규표현식 정리

2022-04-29

❗ 수업을 듣고, 개인이 공부한 내용을 적은 것 이기에 오류가 많을 수도 있음

🔔정규표현식

문자열에서 특정한 문자열을 추출해내고자 할 떄 사용하는 표현식

💡 정규표현식 문법

패턴 : 대상이 되는 문자열을 찾을 패턴

플래그 : 모든 문자 일치(g), 대소문자 구분 안함(i), 여러 줄 일치(m), 엔터키를 무시하고 모두 한 문장으로 인식(s-dotall)

1️⃣ 메타 문자(패턴과 관련된 문자)

1) . -> 모든 문자열 일치
2) | -> 문자 일치  ex) a|b -> a 혹은 b 문자와 일치 찾기
3) [] -> 괄호 안의 문자 중 하나와 일치 -> [a,b,c] a 혹은 b 혹은 c문자 일치 찾기
4) [^abc] -> 괄호 안의 문자들을 제외하고 -> [^abc] a 혹은 b 혹은 c를 제외하고 찾기
5) [a-z] -> 괄호의 문자 범위 안의 모든 문자를 일치 -> [a-z] -> 소문자만 찾기, [A-Z] -> 대문자만 찾기
6) \. -> 문자열 중 .을 찾기
7 (^a -> 문장의 맨 앞에 있는 a문자와 일치(전체 데이터 중) -> multiline을 이용해야 각 문장 맨앞의 a 찾기 가능
8) a$ -> 하나의 행(문장)의 맨 끝 문자와 일치시킴, \.$ -> 문장의 끝의 .
9) ^abc$ -> 정확히 abc인 값과 일치
10) a\b -> 문자와 공백사이의 위치에 a가 있다면 일치
11) a\B -> 문자와 문자 사이의 위치에 a가 있다면 일치

2️⃣ 수량자

1) a{n} -> a가 정확히 n개인 경우 일치 ex) a{1} -> a만 나온거 a{2} ->연달아 a가 2개 나온거
2) a{n,} -> a가 n개 이상 있는 경우 일치
3) a{n,m} -> a가 최소 n개 이상 m개 이하인 경우 일치
4) a* -> a가 0개 이상인 경우 일치
5) a+ -> a가 하나 이상인 경우 일치
6) a? -> a가 0개 혹은 1개 있는 경우 일치

3️⃣ greedy match(탐욕적 수량자)

a.*b -> a라는 문자와 b라는 문자 사이에 어떤 문자가 오던간에 0개 이상있으면 일치, -> a와 b사이라는 조건이 안맞을 떄 까지 모든 값을 일치

4️⃣ lazy match(게으른 수량자)

 a.*?b -> a와 b 사이의 조건이 일치하는 최소의 문자열만 일치

5️⃣ 문자열 패턴

\d : 모든 숫자와 일치 [0-9]
\D : 숫자 빼고 모두다
\s : 공백, 탭 문자와 일치
\S : 공백과 탭 문자 제외한 모든 문자와 일치
\w : 숫자,영문자,언더바와 일치
\W : 한글,특수문자,공백문자 등과 일치

5️⃣ 그룹화

1) () : 특정 문자열 패턴을 하나의 그룹으로 묶어서 관리할 수 있는 것
2) $&(캡쳐변수) : 정규식을 통해 선택된 데이터가 자동으로 저장되는 변수
3) $1 : 1번 그룹의 데이터를 담고 있는 변수
4) singleline flag : 여러 문장을 하나의 문장으로 만들어 엔터키를 무효화 시킴

Leave a comment