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 진 문자 코드 의 표현 식 을 말 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.