차밍이

[Linux] 정규 표현식 모음 / Regular Expression 본문

리눅스

[Linux] 정규 표현식 모음 / Regular Expression

2021. 8. 7. 21:53
반응형

정규 표현식

Regular Expression

정규식 표현 : 특정한 규칙을 가진 문자열의 집합을 표현함

^ 문자열의 시작 : ^a 로 검색하면 a가 단어 중간인 경우는 제외 a로 시작 하는 것만 검색됨

$ 문자열의 끝 : a$ a로 끝나는 것만

\d 숫자

\D 숫자가 아닌 것

. 하나의 문자와 대응 : a.b >> acb, a3b, axb 등등

\w 알파벳 대소문자, 숫자, 언더스코어(_)

\W 그 외의 것들 \w에 포함되지 않는 것들

\s 공백문자

\S 공백문자가 아닌 것들

\n 개행문자

\ 메타문자를 문자 그대로 사용하기 위함

\t

 

선택패턴

| 문자를 사용해서 여러개의 패턴을 매칭 가능

[] 대괄호 속에 넣은 문자 중 하나에 매칭

[0-9] 0~9 까지의 숫자 중 하나에 매칭

[A-Z] A~Z 까지의 알파벳 대문자 중 하나에 매칭 / 소문자는 소문자로

[a-zA-Z] 알파벳 대소문자 전체 중 하나에 매칭

[] 내부에서의 ^ 기호는 not을 의미함 [^A]는 A가 아닌 문자 중 하나에 매칭이란 의미

 

수량 한정자

? 0개 또는 1개

* 0개 이상

+ 1개 이상

{n} n개

{n, } n개 이상

{n, m} n개 이상, m개 이하

 

그룹 패턴

() 괄호는 그룹을 의미함

그룹은 전체 패턴 내에서 하나로 묶여지는 패턴을 의미

한 번 생성한 그룹은 재사용 가능

만들어진 순서로 1, 2, 3번으로 불러올 수 있음

(to)ma\1 == tomato

\1 이 앞의 그룹인 to에 매칭되어 재사용함

휴대폰 번호 정규 표현식으로 나타내기

^010(\D?\d{4})\1

^010 : 010으로 시작함

\D? : 숫자가 아닌 것이 올수도 안올수도 있음, 번호 사이의 하이픈이나 띄어쓰기가 있는 경우를 위해

\d{4} : 숫자 4개

\1 : (\D?\d{4}) 이 부분이 그룹 1번으로 묶여있음, 폰번호 뒷자로도 중간 자리와 동일한 포멧이므로 그룹 1번을 재사용해서 표현 가능

반응형

관련된 글 보기

Comments