• TIL

[Regex] 정규 표현식(1) - Quantifier 수량자

man_on 2022. 11. 12. 00:16
반응형

 

 


 

 

 

What is a Regular Expressions?

 

  • Not matching exact strings
  • Instead, matching patterns of strings

 

정규표현식, 또는 정규식은 특정 문자 조합을 찾기위한 패턴이다.

Regular Expressions = regex (Regg-ex or Redge-ex로 발음한다.)

 

 

 

 

 

🌟 정규표현식 연습하기 좋은 사이트

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, C#/.NET.

regex101.com

 

regex101

FLAVOR에서 언어 선택 후

REGULAR EXPRESSION에 정규표현식을 입력하고

하단의 TEST STRING에 테스트할 문자를 입력하면

오른쪽 하단의 MATCH INFORMATION에서 매칭되어 테스트에 통과한 항목들만 뜬다.

 

 

 

 

 

 

 


 

 

 

 

 

 

 

? + *   기본 수량자

 

 

 

 

Match the string

* 정규식의 시작과 끝은  /  를 사용해서 구분한다.

ex) 단어 hey
/hey/
h : 문자 h
e : 다음에 바로 e
y : 다음에 바로 y

 

e를 여러번 나열했을 때는 match되지 않는다.

 

 

 

 

Quantifier 수량자

수량자는 찾을 항목의 문자, 그룹 또는 문자 클래스의 인스턴스 수를 지정한다.

쉽게말해 어떠한 패턴이 몇 번 등장하는가를 말한다.

?    (앞에있는) 해당 문자가 0번 or 1번 나올 수 있음
+   최소한번이상 or 여러번
*    0번 or 여러번

 

 

? 예시

e가 없는 hy나, 한번나온 hey가 match된다.

 

 

 

+ 예시

e가 1개는 무조건 있고, 다음 문자인 y가 나올 때 까지의 수는 제한없다.

 

 

 

* 예시

e가 없거나, 제한없이 계속 반복된다. (다음문자 y가 나올 때 까지)

 

 

 

 

 

 


 

 

 

 

 

 

특수 문자

 

 

 

정규식에서 일부 문자는 한 가지 이상의 의미를 가진다.

예를들어  . (dot)을 입력하고 + 부호를 붙여 dot이 한 번 이상 입력된 단어를 찾고 싶은데,

! (느낌표)를 한 번 이상 입력한 단어들도 매치가 된다.

 

 

 

 

 

이러한 특수문자 + ? * . { } [ ] 9 0 ^ $ 등은 특수문자의 기능이 아닌 실제 해당 문자를 원할 때

\ (back slash)를 특수문자 앞에 추가하여서 사용한다.

 

 

/hello\.+/

hello ▶ 문자 string

\.+  ▶ 하나이상의 .(dot)

 

 

 

 


 

 

 

 

 

 

{ } 중괄호 수량자

 

 

 

+ 혹은 * 수량자는 0이나 1이상의 수량을 매치시키는데,

좀 더 정확한 수로 매치되는 문자를 찾고 싶을 때 중괄호 수량자를 사용한다.

 

 

1. { }에 콤마로 구분된 2개의 숫자 - 2개의 숫자를 포함하는 그 사이의 숫자들 만큼 반복
    ex) { 1, 3 } = 1과 3사이 (3포함)

2. { }에 숫자 하나 - 정확하게 그 숫자 만큼의 반복을 허용
    ex) {3} = 3번 반복

3. { }에 숫자와 콤마로 끝 - 그 숫자 이상
    ex) { 3 , } = 3번이상 반복

 

 

 

 

ex1) {1.3} comma가 1 or 2 or 3번 반복된 문자만 match

 

 

 

 

ex) {3} comma가 3번 반복된 문자만 match

 

 

 

 

ex) {3,} comma가 3번 이상 반복된 문자 match

 

 

 
 
 
 
 
 
 
 
 
 
 
반응형