달력

12

« 2019/12 »

  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  


 

정규표현식의 메타 문자 종류

메타문자

의미

.

·       임의의 문자

·       뉴라인(\n) 제외한 모든 문자를 의미

 

·       .{3} : 문자 3 (F15, 0x0 )

^

·       머리(문자열의 처음, 라인의 처음을 의미)

·       패턴의 시작, 문자만 패턴의 앞에 있습니다.

·       문자 클래스 내에 ^ 메타 문자가 사용될 경우에는 반대(not)라는 의미를 가집니다.

·       re.MULTILINE 사용할 경우에는 여러줄의 문자열에서는 라인의 처음과 일치해야 합니다.

 

·       ^abc : abc 시작해야 (abcd, abc12 )

$

·       꼬리(문자열의 마지막, 라인의 끝을 의미)

·       문자는 태펀의 끝을 알림, 문자열에서 패턴의 마지막 문자는 반드시 문자로 끝나야 합니다.

·       ^ 메타문자의 반대

 

·       python$이라면 문자열의 마지막은 항상 python으로 끝나야 합니다.

·       xyz$ : xyz 종료되어야 (123xyz, strxyz )

\s

·       공백 문자

·       공백문자는 공백, , 줄바꿈, 리턴키 포함

·       화이트 스페이스를 의미

·       [ \t\n\r\f\v] 동일한 표현식( 앞의 칸은 공백문자)

 

·       \s\s : 화이트 스페이스 문자 2 의미 (\r\n, \t\t )

\S

·       공백 문자 아님

·       공백이 아닌 문자를 매칭합니다.

·       [^ \t\n\r\f\v] 동일한 표현식

\w

·       문자+숫자(alphanumeric) 매치

·       [a-zA-Z0-9] 동일한 표현식

 

·       \w\w\w : 문자가 3개를 의미 (xyz, ABC )

\W

·       문자+숫자(alphanumeric) 아닌 문자와 매치

·       [^a-zA-Z0-9] 동일한 표현식

\d

·       숫자 0 ~ 9

·       [0-9] 동일한 표현식

 

·       \d\d\d : 0 ~ 9 범위의 숫자가 3개를 의미 (123, 000 )

\D

·       숫자 이외의 문자

·       [^0-9] 동일한 표현식

\A

·       문자열의 처음과 매치됨을 의미

·       ^ 동일한 의미이지만 re.MULTILINE 옵션을 사용할 경우에는 다르게 해석된다. re.MULTILINE 옵션을 사용할 경우 ^ 라인별 문자열의 처음과 매치되지만 \A 라인과 상관없이 전체 문자열의 처음하고만 매치됩니다.

\Z

·       문자열의 끝과 매치됨을 의미

·       re.MULTILINE 옵션을 사용할 경우 $ 메타문자와는 달리 전체 문자열의 끝과 매치됩니다.

\b

·       단어 경계, 단어 구분자(Word boundary)

·       보통 단어는 whitespace 의해 구분 되어 집니다.

·       \b 파이썬 리터럴로 백스페이스(Back Space) 의미하므로 백스페이스가 아닌 단어구분자(Word Boundary)임을 알려주기 위해 r'\bclass\b' 처럼 raw string임을 알려주는 기호 r 반드시 붙여주어야 합니다.

\B

·       비단어 경계

·       \b 메타문자의 반대

·       whitespace 구분된 단어가 아닌 경우에만 매치되어 집니다.

X?

·       X 0문자 또는 1문자

·       패턴이 없거나 하나이어야 (Optional 패턴을 정의할 사용)

 

·       \d? : 숫자가 하나 있거나 없어야 합니다.

X*

·       패턴이 0 이상이어야 합니다.

·       X 0문자 이상 반복

 

·       \d* : 숫자가 없거나 하나 이상이어야 합니다.

X+

·       패턴이 하나 이상이어야 합니다.

·       X 1문자 이상 반복

 

·       \d+ : 숫자가 하나 이상이어야 합니다.

X{n}

·       패턴이 n 반복해서 나타나는 경우

·       X n 반복

 

·       \d{3} : 숫자가 3 있어야 합니다.

X{n,}

·       X n 이상 반복

X{n,m}

·       패턴이 최소 n, 최대 m 반복해서 나타나는 경우 (n 또는 m 생략 가능)

·       X n부터 m 반복

 

·       \d{3,5} : 숫자가 3, 4 혹은 5 있어야 합니다.

X|Y

·       패턴 하나이어야 합니다.

·       "or" 의미

·       X 또는 Y

[XYZ]

·       정의된 문자들의 집합중에 매칭되는 단어가 있어야 합니다.

·       [XYZ] : X또는 Y 또는 Z 1문자

·        

·       [Pp]ython : "Python" 혹은 "python"

[^XYZ]

·       [문자들] 반대로 피해야할 문자들의 집합을 정의합니다.

·       X Y Z 아닌 1문자

 

·       [^aeiou] : 소문자 모음이 아닌 문자들

()

소괄호로 추출 시작점과 끝점을 지정해줍니다.

 

\S+@\S+ : '@' 문자 뒤로 공백이 아닌 문자(\S) 오는 문자열 패턴

 

 

Posted by codedragon codedragon

댓글을 달아 주세요