Python 기본 (10) 정규 표현 식

4485 단어
Python 기본 (10) 정규 표현 식
match
함수.
pattern: 일치 하 는 정규 표현 식
string: 검색 할 문자열
flags: 플래그 비트, 정규 표현 식 의 일치 방식 을 제어 하 는 데 사 용 됩 니 다. 예 를 들 어 대소 문자 구분 여부, 여러 줄 일치 여부 등 입 니 다.
 flags 선택 표 지 는 re. I | re. M 과 같은 여러 개의 표 지 를 선택 할 수 있 습 니 다.
re. I 대소 문자 일치 에 민감 하지 않 음
re. L 로 컬 인식 (locale - aware) 일치
re. M 여러 줄 일치, 영향 ^ $
re. S. 줄 바 꿈 을 포함 한 모든 문자 와 일치 합 니 다.
re. U 는 유 니 코드 문자 집합 에 따라 문 자 를 해석 합 니 다.이 표 지 는 \ w, \ W, \ b, \ B 에 영향 을 줍 니 다.
re. X 이 표 지 는 정규 표현 식 을 쉽게 이해 할 수 있 도록 보다 유연 한 형식 을 제공 합 니 다.
re.match(pattern,string,flags=0)

search
# -*- coding:UTF-8 -*-
import re
line = " Cats are smarter than dogs"
# (.*)      
# (.*?)      

# r'(.*) are (.*?) .*'         XXX are XXX XXX     
matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)

#match
#matchObj = re.match( r'(.*?) Cats (.*?) .*', line, re.M|re.I)

#  cats        XXX   XXX     Nomatch!!
#matchObj = re.match( r'(.*) Cats (.*?) .*', line, re.M|re.I)

#  dogs           Nomatch!!
#matchObj = re.match( r'(.*) dogs (.*?) .*', line, re.M|re.I)

if matchObj:
   print "matchObj.group() : ", matchObj.group()
   print "matchObj.group(1) : ", matchObj.group(1)
   print "matchObj.group(2) : ", matchObj.group(2)
else:
   print "No match!!"

re. match 와 re. search 의 차이
re. match 는 문자열 의 시작 만 일치 합 니 다. 문자열 이 정규 표현 식 에 맞지 않 으 면 일치 하지 않 습 니 다. 함수 가 None 로 돌아 갑 니 다.
일치 하 는 문자열 을 찾 을 때 까지 \ # re. search 는 전체 문자열 과 일치 합 니 다.
# -*- coding:UTF-8 -*-
import re
print(re.search('www', 'www.runoob.com').span())  #        
print(re.search('com', 'www.runoob.com').span())  #         


line = "Cats are smarter than dogs";
searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)

if searchObj:
   print "searchObj.group() : ", searchObj.group()
   print "searchObj.group(1) : ", searchObj.group(1)
   print "searchObj.group(2) : ", searchObj.group(2)
else:
   print "Nothing found!!"

정규 표현 식 모드 ^
문자열 의 시작 과 일치 합 니 다.
$
문자열 의 끝 과 일치 합 니 다.
.
임의의 문자 와 일치 합 니 다. 줄 바 꿈 자 를 제외 하고 re. DOTALL 태그 가 지정 되 었 을 때 줄 바 꿈 자 를 포함 한 임의의 문자 와 일치 할 수 있 습 니 다.
[...]
한 그룹의 문 자 를 표시 하 는 데 사용 합 니 다. 단독 목록: [amk] 은 'a', 'm' 또는 'k' 와 일치 합 니 다.
[^...]
[] 에 없 는 문자: [^ abc] 는 a, b, c 를 제외 한 문자 와 일치 합 니 다.
re*
0 개 이상 의 표현 식 과 일치 합 니 다.
re+
하나 이상 의 표현 식 과 일치 합 니 다.
re?
앞의 정규 표현 식 에서 정 의 된 0 개 또는 1 개의 세 션 과 일치 합 니 다. 탐욕 이 아 닙 니 다.
re{ n}
re{ n,}
n 개의 앞 표현 식 과 정확하게 일치 합 니 다.
re{ n, m}
n 에서 m 까지 앞의 정규 표현 식 에서 정 의 된 세 션, 탐욕 방식 과 일치 합 니 다.
a| b
일치 하 는 a 또는 b
(re)
G 괄호 안에 있 는 표현 식 과 일치 하 며, 그룹 을 나 타 냅 니 다.
(?imx)
정규 표현 식 은 선택 할 수 있 는 세 가지 표 지 를 포함 합 니 다: i, m, 또는 x.괄호 안의 영역 에 만 영향 을 줍 니 다.
(?-imx)
정규 표현 식 은 i, m, x 로 고 를 닫 습 니 다.괄호 안의 영역 에 만 영향 을 줍 니 다.
(?: re)
유사 (...) 하지만 한 그룹 을 표시 하지 않 습 니 다.
(?imx: re)
괄호 안에 i, m 또는 x 선택 표 지 를 사용 합 니 다.
(?-imx: re)
괄호 안에 i, m, x 로 고 를 사용 하지 않 습 니 다.
(?#...)
주석
(?= re)
전방 향 긍정 정의 부.정규 표현 식 이 포함 되 어 있 으 면 현재 위치 가 성공 적 으로 일치 할 때 성공 하고 그렇지 않 으 면 실패 합 니 다.그러나 표현 식 이 시도 되 었 을 때 일치 하 는 엔진 이 전혀 향상 되 지 않 았 습 니 다.모드 의 나머지 부분 은 정의 문자 의 오른쪽 을 시도 해 야 합 니 다.
(?! re)
전방 부정 정의 부.긍정 적 인 정의 와 반대;함 유 된 표현 식 이 문자열 의 현재 위치 와 일치 하지 않 을 때 성공 합 니 다.
(?> re)
일치 하 는 독립 모델 로 거 슬러 올 라 가지 않 습 니 다.
\w
일치 하 는 알파벳 숫자
\W
일치 하 는 비 자모 숫자
\s
임의의 공백 문자 와 일치 합 니 다. [\ t \ r \ f] 와 같 습 니 다.
\S
임의의 비어 있 지 않 은 문자 일치
\d
임의의 숫자 와 일치 하 며, 등가 는 [0 - 9] 이다.
\D
임의의 비 숫자 일치
\A
일치 하 는 문자열 시작
\Z
일치 하 는 문자열 이 끝 났 습 니 다. 줄 이 바 뀌 기 전의 끝 문자열 만 일치 합 니 다.c
\z
일치 문자열 끝
\G
마지막 으로 완 성 된 위치 와 일치 합 니 다.
\b
단어 경계 와 일치 합 니 다. 즉, 단어 와 빈 칸 사이 의 위 치 를 말 합 니 다.예 를 들 어 'er \ b' 는 'never' 의 'er' 와 일치 할 수 있 지만 'verb' 의 'er' 와 일치 할 수 없습니다.
\B
단어 가 아 닌 경계 와 일치 합 니 다.r \ B '는' verb '의' er '와 일치 하지만' never '의' er '와 일치 할 수 없습니다.
, \ t, 등.
줄 바 꿈 문자 와 일치 합 니 다.탭 문자 와 일치 합 니 다.기다리다
\1...\9
n 번 째 그룹의 하위 표현 식 과 일치 합 니 다.
\10
n 번 째 그룹의 하위 표현 식 과 일치 합 니 다. 일치 하면.그렇지 않 으 면 8 진 문자 코드 의 표현 식 을 말 합 니 다.

좋은 웹페이지 즐겨찾기