본문 바로가기
프로그래밍 언어 & 데이터베이스/정규 표현식

정규 표현식 - 수량자

by ♥︎해이나♥︎ 2023. 7. 4.
반응형

수량자는 문자의 반복 횟수를 설정하는 문법으로, 반복하고 싶은 문자{수량자}의 형태로 사용한다. 반복하고 싶은 문자 부분에는 일반 문자, 집합, 문자 클래스, 메타 문자, 하위 표현식 등이 올 수 있다.

 

수량자

 

수량자 기본 표현

반복 횟수를 대괄호 안에 넣어서 {n}과 같은 형태로 사용하는 것이 기본이다.

 

ex) 네 자리 숫자가 연속으로 오는 경우를 찾고 싶을 때

정규 표현식 실습

 

\d{4} 외에 아래와 같이 써도 동일한 결과를 얻을 수 있다.

 

[0-9]{4}

[0123456789]{4}

\d\d\d\d

[0-9][0-9][0-9][0-9]

[0123456789][0123456789][0123456789][0123456789]

 

 

반응형

수량자 범위 지정

수량자를 {min,max} 형태로 사용하면 {최소값, 최대값} 사이의 경우를 찾는다. 최소값과 최대값을 입력할 때에는 콤마(,)를 기준으로 공백 없이 사용해야 한다.

 

ex) 세 자리에서 다섯 자리까지 숫자 선택하기

정규 표현식 실습

 

다섯 자리 숫자를 선택하고 난 후에 이어지는 숫자가 세 자리 이상이면, 해당 부분도 선택된다는 점을 알아두면 좋을 것 같다. (기준 충족)

 

수량자를 설정할 때 최대값을 빈 값으로 둘 수도 있다. 하지만 최소값만 빈 값으로 두는 것은 불가하다. 만약 최대 반복 횟수를 지정하고 싶을 때에는 {1,max}로 입력해야 한다.

 

  • {min,} (o)
  • {,max} (x)
  • {1,max} (o)

 

ex) 네자리 이상의 숫자 찾기

정규 표현실 실습

 

수량자 메타 문자

메타 문자로 만들어져 있는 수량자 표현에 대해서 알아보자.

 

모든 숫자를 나타내는 * 과 +

* : 제한 없이 모든 숫자를 나타냄, 앞에 문자가 하나도 없어도 선택해 줌

 

정규 표현식 실습

 

+ : 제한 없이 모든 숫자를 나타냄, 앞에 문자가 최소 1개는 있어야 함

 

정규 표현식 실습

 

문자가 아예 없거나 하나만 있을 때 ?

문자가 아예 없거나 하나만 있을 경우를 선택할 때는 물음표(?)를 사용한다.

 

ex) jpg, jpeg 동시에 찾기 

정규 표현식 실습

 

수량자 사용 시 주의사항

탐욕적 수량자

수량자 *는 정규 표현식에 부합하는 여러 케이스가 있을 때 가장 큰 덩어리의 문자열을 선택하려는 특성을 가지고 있다. 이러한 수량자의 특성을 탐욕적(greedy) 수량자라고 한다. 

 

ex) 따옴표로 둘러싸인 문자 찾기

→ 공백까지 선택됨

→ 수량자의 탐욕적인 특성에 따라 가장 큰 덩어리 안에 있는 한나" "유리" "마이크를 찾은 것

 

정규 표현식 실습

 

게으른 수량자

수량자의 기본 세팅은 탐욕적이기 때문에, 사용자가 원하는 만큼의 문자열만 찾도록 해주기 위해서 별도 설정이 필요하다. 이럴 때 사용하는 수량자를 게으른 수량자라고 하며, 일반 수량자 뒤에 ?를 붙이면 된다.

?는 단독으로 쓰이면 0번 또는 1번 반복되는 문자를 찾는 수량자이지만, 다른 수량자와 중첩으로 사용하면 앞에 온 수량자가 게으른 수량자가 되게 한다.

 

ex) 따옴표로 둘러싸인 문자 찾기

→ 게으른 수량자 ?를 사용하여 따옴표를 각각 선택하게 함

 

정규 표현식 실습


그리고 막간을 이용한 자랑타임! ㅋㅋ

나는 코드잇이라는 사이트에서 강의를 들으며 코딩 공부를 하고 있는데 (여기서 공부한 내용을 정리해서 포스팅 하는 것) 강의를 듣다보니 어느 새 경험치가 쌓여서 51레벨이 되었다. 항상 레벨업 하는 순간을 캡처하고 싶었는데 빠르게 휘리릭 지나가서 쳐다만 보다가... 오늘은 리뉴얼이 되었는지 레벨업 화면이 사라지지 않아서 얼른 캡처를 했다ㅋㅋㅋ

-> 이런거에 소소한 재미를 느끼는 1인

 

코드잇 레벨업

 

그리고 코드잇에 로그인을 하면 강의를 들은 날에 출석 표시를 해 주는데, 나는 48주째 연속 출석중이다. 52주 연속 출석 배지를 받는 것을 목표로 열심히 강의를 듣고 있다. 

 

코드잇 출석

 

한달 뒤에 배지를 획득하면 또 자랑해야지~ 훗 😎 쉽고 재밌는 온라인코딩강의 사이트 코드잇을 추천한다!

반응형

댓글