re 모듈 상세 설명
^
$
.
[]
[^]
[-]
? 1 0
+ 1
* 0
{n} n
{m,n} n , m
{n,} n
| | |
(...)
\A ^ ,
\Z , $
\d 0-9
\D
\w [A-Za-z0-9]
\W [A-Za-z0-9]
\s 、\t、
、\r
(?P...)
:?P
re 모듈 방법 소개
1. 클래스 매 칭 방법
a. findall 방법
findall , , , , ,
# , , , , findall ,
# , ,
# re.findall()
re_str = "hello this is python 2.7.13 and python 3.4.5"
pattern = "python [0-9]\.[0-9]\.[0-9]"
res = re.findall(pattern=pattern,string=re_str)
print(res)
# ['python 2.7.1', 'python 3.4.5']
pattern = "python [0-9]\.[0-9]\.[0-9]{2,}"
res = re.findall(pattern=pattern,string=re_str)
print(res)
# ['python 2.7.13']
pattern = "python[0-9]\.[0-9]\.[0-9]{2,}"
res = re.findall(pattern=pattern,string=re_str)
print(res)
# []
# re.findall() , , , , ,
re_str = "hello this is python 2.7.13 and Python 3.4.5"
pattern = "python [0-9]\.[0-9]\.[0-9]"
res = re.findall(pattern=pattern,string=re_str,flags=re.IGNORECASE)
print(res)
# ['python 2.7.1', 'Python 3.4.5']
# flags=re.IGNORECASE,
b. 정규 표현 식 을 컴 파일 하 는 방식 으로 사용 합 니 다.
# python , , ,
re_str = "hello this is python 2.7.13 and Python 3.4.5"
re_obj = re.compile(pattern = "python [0-9]\.[0-9]\.[0-9]",flags=re.IGNORECASE)
res = re_obj.findall(re_str)
print(res)
c. match 방법
# match , startwith , match , ,match ,
# , SRE_Match , , None, , startwith ,
# data what
s_true = "what is a boy"
s_false = "What is a boy"
re_obj = re.compile("what")
print(re_obj.match(string=s_true))
# <_sre.sre_match object="" span="(0," match="what" print="" none="" s_true="123what is a boy" s_false="what is a boy" re_obj="re.compile("\d+")">
print(re_obj.match(s_true).start())
# 0
print(re_obj.match(s_true).end())
# 3
print(re_obj.match(s_true).string)
# 123what is a boy
print(re_obj.match(s_true).group())
# 123
print(re_obj.match(s_false))
# None
d, 검색 방법
# search , , SRE_Match ,search match match , search
# , , , SRE_Match , , None, ,
# search , , , ,
# findall , finditer
e, finditer 방법
# finditer , SRE_Match ,
re_str = "what is a different between python 2.7.14 and python 3.5.4"
re_obj = re.compile("\d{1,}\.\d{1,}\.\d{1,}")
for i in re_obj.finditer(re_str):
print(i)
# <_sre.sre_match object="" span="(35," match="2.7.14">
# <_sre.sre_match object="" span="(53," match="3.5.4">
2. 수정 유형 방법 소개
a, sub 방법
# re sub replace , sub , ,re sub
re_str = "what is a different between python 2.7.14 and python 3.5.4"
re_obj = re.compile("\d{1,}\.\d{1,}\.\d{1,}")
print(re_obj.sub("a.b.c",re_str,count=1))
# what is a different between python a.b.c and python 3.5.4
print(re_obj.sub("a.b.c",re_str,count=2))
# what is a different between python a.b.c and python a.b.c
print(re_obj.sub("a.b.c",re_str))
# what is a different between python a.b.c and python a.b.c
b. split 방법
# re split python split , , re split
#
# , . : ! ,
re_str = "what is a different between python 2.7.14 and python 3.5.4 USA:NewYork!Zidan.FRA"
re_obj = re.compile("[. :!]")
print(re_obj.split(re_str))
# ['what', 'is', 'a', 'different', 'between', 'python', '2', '7', '14', 'and', 'python', '3', '5', '4', 'USA', 'NewYork', 'Zidan', 'FRA']
c. 대소 문자 민감 하지 않 은 설정
# 3、
# re.compile(flags=re.IGNORECASE)
d. 탐욕 이 아 닌 일치
# 4、 , , , , ?
# , .
s = "Beautiful is better than ugly.Explicit is better than impliciy."
re_obj = re.compile("Beautiful.*y\.")
print(re_obj.findall(s))
# ['Beautiful is better than ugly.Explicit is better than implicit.']
re_obj = re.compile("Beautiful.*?\.")
print(re_obj.findall(s))
# ['Beautiful is better than ugly.']
e. 정규 일치 문자열 에 작은 괄호 를 넣 으 면 어떤 효과 가 있 습 니까?
진정한 작은 괄호 를 설정 하려 면 전의 자가 필요 합 니 다. 아래 의 예 를 자세히 보 세 요. search 방법 으로 돌아 오 는 대상 의 group (1) 이 방법 은 잘못 보 고 된 것 입 니 다.
import re
s = "=aa1239d&&& 0a ()--"
# obj = re.compile("\(\)")
# search
# rep = obj.search(s)
# print(rep)
# <_sre.sre_match object="" span="(15," match="()">
# print(rep.group(1))
# IndexError: no such group
# print(rep.group())
# ()
# findall
rep = obj.findall(s)
print(rep)
# ['()']
괄호 에 일치 하 는 문자열 을 되 돌려 주 려 면 이 작은 괄호 는 전의 문자 가 필요 없습니다. findall 방법 은 젊은이 들 이 잘 어 울 리 는 문자열 을 되 돌려 줍 니 다. search. group () 방법의 전체 패턴 은 문자열 과 일치 합 니 다. search. group (1) 이것 은 첫 번 째 작은 괄호 에 일치 하 는 패턴 과 일치 하 는 문자열 입 니 다. search. group (2)이것 은 두 번 째 작은 괄호 의 패턴 과 일치 하 는 문자열 입 니 다.
s = "=aa1239d&&& 0a ()--"
rep = re.compile("\w+(&+)")
print(rep.findall(s))
# ['&&&']
print(rep.search(s).group())
# aa1239d&&&
print(rep.search(s).group(1))
# &&&
다음으로 전송: https://www.cnblogs.com/bainianminguo/p/10657631.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.