Python/Python Language

정규식 함수 (Python RegEx)

567Rabbit 2024. 4. 24. 12:29

Python RegEx [정규식]
- 검색 패턴을 형성하는 일련의 문자
- 문자열에 지정된 검색 패턴이 포함되어 있는지를 확인할 수 있습니다
- 내장패키지이며 아래와 같이 사용한다

 


import re
#문자열을 검색하여 The로 시작하고 Spain으로 끝나는지 확인합니다 

txt = "The rain in Spain"
x = re.search("^The.*Spain$",txt)

if x:
    print("Yes! match!")
else:
    print("No match")


 

 


정규식 함수


1) findall : 모든 일치 항목이 포함된 목록을 리턴
2) search : 문자열에서 일치하는 항목을 검색하고 일치하는 항목이 있으면 Match객체를 리턴
3) split : 일치할때 마다 문자열이 분할된 목록을 리턴
4) sub : 일치하는 항목을 선택한 텍스트로 바꿉니다

 

 

메타문자


[] => 문자세팅
\ => 특수시퀀스(특수문자를 이스케이프하는데 사용한다)
. => 모든 문자인데 개행문자 제외
^ => start with
$ => end with 끝나는지
* => 곱하기 , 0개 이상의 발생
+ => 하나 이상의 발생 
? => 0개 이상의 발생
{} => 정확히 지정된 발생횟수
| =>  하나 또는 
() => 캡처 및 그룹화

 

 

 

특수시퀀스


\A : 지정된 문자가 문자열의 시작부분에 있으면 일치항목을 리턴
\b : 지정된 문자가 문자열의 시작 또는 끝에 있는 일치항목을 리턴  r"\bain 문자열이 원시문자열로 처리되는지 확인
\B : 지정된 문자가 시작 또는 끝이아닌 일치항목을 리턴
\d : 문자열에 숫자(0-9)가 포함된 일치항목을 리턴
\D : 문자열에 숫자가 포함되지 않는 일치 항목을 리턴합니다
\s : 문자열에 공백문자가 포함된 일치 항목을 리턴
\S : 문자열에 공백문자가 포함되지 않는 일치 항목을 리턴
\w : 문자열에 임의의 단어 문자 ((a-z), (0-9)까지의 숫자 및 밑줄)과 포함된 일치항목을 리턴
\W : 문자열에 단어문자가 포함되지 않은 일치 항목을 리턴
\Z : 지정된 문자가 문자열 끝에 있으면 일치항목을 리턴

세트 : 특별한 의미를 갖는 한 쌍의 대괄호안에 있는 문자 세트
[arn] : 지정된 문자 (a,r,n) 중 하나가 존재하는 일치항목을 리턴
[a-n] : a와 n사이의 알파벳 순으로 모든 소문자에 일치항목을 리턴
[^arn] : (a,r,n) 제외한 모든 몬자에 대한 일치항목을 리턴
[0123] : 지정된 숫자 (0,1,2,3) 중 하나라도 존재하는 일치항목을 리턴
[0-9] : 0에서 9사이에 모든 숫자에 대해 일치하는 항목을 리턴
[0-5][0-9] : 00과 59 중 두자리 숫자에 대한 일치항목을 리턴
[a-z][A-z] : a와 z 사이 소문자 또는 대문자 사이의 알파벳순 문자에 대한 일치항목을 리턴한다
[+] : 집합에서 +, *, . , |, (), $, {} 특별한 의미가 없으므로 다음을 의미한다

 

 

 

 

 


.span()일치의 시작위치와 끝위치를 포함하는 튜플을 리턴, 
.string() 함수에 전달된 문자열을 리턴
.group() 일치하는 문자열의 일부를 리턴

 

 


# span
i = re.search(r"\bX\w", txt)
print(i.span()) #12, 17

 


#String 전달된 문자열
o = re.search(r"\bX\w", txt)
print(o. string())

 


# group 대문자 s로 시작하는 단어
p = re.search(r"\bX\w", txt)
print(p. group()) #spain