정규표현식 - 1

동스토리 ㅣ 2021. 7. 27. 22:41

반응형

안녕하세요.

 

정규표현식에 대해서 포스팅 해보려고 합니다.

 

우선, 정규표현식이 뭘까요?

 

정규표현식이란, 특정한 규칙을 가진 문자열의 집합을 표시하는데 사용하는 방법이고, 특히 방대한 데이터에서 특정 규칙을 만족하는 문자열을 찾아야할 경우 정규표현식을 자주 사용합니다.

 

정규표현식 문법 예시

 

그렇다면, 이후부터는 아래 사이트를 활용해 앞으로 정규표현식 테스트를 해보도록 하겠습니다.

 

https://regex101.com/

 

regex101: build, test, and debug regex

Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java. Features a regex quiz & library.

regex101.com

 

# 처음과 끝

 

^hello -> hello가 처음에 나온경우만 추출

hello$ -> hello가 마지막에 나온경우만 추출

^hello$ -> 처음과 끝이 전부다 hello

 

#모든 문자

 

. -> 모든 문자. 의 개수 -> 문자의 개수\. -> .을 찾는다

 

.....\, -> hello, 추출

h[ea]llo -> hello, hallo 추출

[a-zA-Z0-9] -> 특수문자, 공백을 제거하고 전부다 추출

 

#부정

 

^

1. 대괄호 안 -> 부정

2. 대괄호 밖 -> 처음

 

 

# 서브 패턴

 

Group #1: on, ues

Group #2: rida

(?:abc) 그룹을 사용하지 않음

 

(?=abc) (Positive 매칭) 그룹으로 설정 -> hello 뒤에 world가 오는 것

 

(?!abc) (Negative 매칭) 그룹으로 설정 -> hello 뒤에 world가 오지 않는 것

 

 

# 수량자

 

해당 문자가 몇 개 있는지를 명시하여 패턴을 찾는 방식

 

_* : 앞에 있는 문자가 0개 ~ N개

_+ : 앞에 있는 문자가 1개 ~ N개

_? : 앞에 있는 문자가 0개 ~ 1개

 

{3} : 3개

{3, } : 3개 이상

{1, 3} : 1개 ~ 3개

 

[0-9]{2,3}[-.*][0-9]{3,4}[-.*][0-9]{3,4}  -> 전화번호 추출

 

# 캐릭터 클래스

 

\w : 워드

\w{5}  : 5개의 글자와 스페이스 하나

\W : not 워드

\d : 숫자

\D : not 숫자

\s : 스페이스

\S : not 스페이스

 

\d{3}-\d{4}-\d{4} -> 전화번호 추출

 

# 이스케이프 문자

특수문자를 추출하기 위해서 \를 사용한다.

 

\[.*\]

\(.*\)

\d+[-* .]?\d+[-* .]?\d+

\d+ : 숫자인데 하나이상

[-* .]? : [-* .]가 0개 이거나 1개

 

# 한글 정규표현식

 

[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]

 

^[가-힣]+$ -> 시작부터 끝까지 한글이고 하나이상이 포함되어야 한다.

 

정규표현식 - 2 에서 이어서 포스팅 하겠습니다.

 

감사합니다.

 

https://ehdtn1219.tistory.com/175

 

반응형

'Development > Etc' 카테고리의 다른 글

[Infra] Untangle 방화벽(F/W)설치 방법  (0) 2021.07.16
ASCII 코드표  (0) 2020.11.29
DFS & BFS  (0) 2020.09.23
[C++] cout, cin 실행속도 개선  (0) 2020.09.18
시간복잡도  (0) 2020.09.18