경험 치 픽업 (핸드 메 이 드) = > Python 정규 전체 설명
import re
re1 = re.compile(r' ') #
re1. () #
문자:
:
. #
\d # 0-9
\D # \d ,
\s #
\S # \s , , # [\s\S]*?
\w #
\W # \w , 、 、
[] # [abcde] , 。 , [a-e]
eg: re.compile(r'[e-h]').match('hello python ').group(0)
>>> h
: [^abcde] [^a-e] ' ', abcde
:
^ # , re.M # : [^123] 123
eg:
import re
r1 = re.compile(r'^\d+')
print(r1.search('456hello123').group())
>>> 456
$ # , re.M
eg:
import re
s = """
123abc456
678abc789
"""
r1 = re.compile(r'\d+$',re.M) # re.M
print(r1.findall(s))
>>> ['456', '789'] # re.M,
>>> ['789'] # re.M, ,
: re.M
, ,
\b: # ( 、 、 )
eg:
import re
s = ' ---- P'
r1 = re.compile(r'\b ')
print(r1.findall(s))
>>>
# : ‘ ’ , 。 ’ ‘ ,
\B: # ( 、 、 )
eg:
import re
s = ' ---- P'
r1 = re.compile(r'\b ')
print(r1.findall(s))
>>>
# : ‘ ’ , 。 ’ ‘ 。
#
: \b \B:
\b: 。 :( 、 、 、 )
\B: 。 :( 、 、 、 )
:
* : 0 eg: *
+ : 1 eg: +
? : 0 eg: ?
{m} : m eg: {3}
{m,} : m eg: {3,} # ,
{m,n}: m n eg: {3,6}
:
| : , ,
() : , 。 .group(1) , group(2)..
(?P) :
(?P=name) :
eg:
s = ' '
r1 = re.compile(r'\w+)>(\w+)(?P=name1)>').match(s).group(2)
print(r1)
>>>
\ :
eg:
s = ' '
r1 = re.compile(r'(\w+)\1>') # \1
print(r1.match(s).group(2)) # 2
>>>
일치 모드
re.M # , ^ $, ^ $ 。
re.I #
eg:
s = 'aAbB'
r1 = re.compile(r'aabb', re.I).match(s).group()
print(r1)
>>> aAbB
re.S # . , .
s = """
hello
python
"""
r1 = re.compile(r'.*', re.S).match(s).group() # re.S
print(r1)
>>> hello
python
: re.S .* ,
re.X # , ,
eg:
import re
title = '1 2 3'
r1 = re.compile(r"""
1 # 1
# 2 ,1 。 ,
""", re.X) # , re.X ,
result = r1.match(title).group()
print(result) # : 1
탐욕 모드 와 비 탐욕 모드
:
:(Python )
, 。
。 ( )
:
* +
:
, , 。
, .
:
*? +?
eg1: search (match )
:search() : , 。
OK, 。
:( ):
import re
r1 = re.compile(r'\d+')
print(r1.search(' 333 333 ').group())
>>> 333 # , '333'
( ? ):
import re
r1 = re.compile(r'\d+?')
print(r1.search(' 333 333 ').group())
>>> 3 # , , , 。
eg2: findall ( findall , , , )
:findall() : ,
OK, 。
( ):
import re
r1 = re.compile(r'\d+')
print(r1.findall(' 333 333 '))
>>> ['333', '333']
: 。
:“ ”
findall
, ‘333‘
findall ,
['333', '333']
:
import re
r1 = re.compile(r'\d+?')
print(r1.findall(' 333 333 '))
>>> ['3', '3', '3', '3', '3', '3']
: 。
:“ ”
findall
, ‘3‘
findall ,
['3', '3', '3', '3', '3', '3']
일치 방법
match():
'''
match() , , , None
'''
s = 'hello python'
re1 = re.compile(r'he')
re1.match('')
result = re1.match(s).group() if re1.match(s) else None # : None group
print(result) # group()
>>> he
:
s = 'hello python'
re1 = re.compile(r'h(e)llo') # e (), ,
result = re1.match(s).group(1) if re1.match(s) else None
# group(1) 1,
>>> e
# group() group(0)
>>> hello
print(result)
>>> e
- ( - ) :
: , ( , )
eg:
a = '123-%%%-dd'
result = re.compile(r'123(-(%%%)-)d(d)').match(a).groups()
# group(1), group(2), group(3) groups()
print(result)
>>> ('-%%%-', '%%%', 'd')
search():
"""
search() : ‘ ’, , None
"""
s = "aaa123aaa"
r1 = re.compile(r'\d+').search(s).group()
print(r1)
>>> 123
findall():
"""
findall() : , ,
"""
s = "aaa---123---bbb"
r1 = re.compile(r'\w+').findall(s)
print(r1)
>>> ['aaa', '123', 'bbb']
:
a = '123-%%%-dd'
result = re.compile(r'-(.*?)-').findall(a)
print(result)
>>> %%%
# : findall() ,
finditer():
"""
finditer() findall() , ,easy,
"""
split():
"""
split() : ,
"""
:
split() , ,
, 。
, split() , :
s = "aaa%%123@@bbb" # ,% @ ,
r1 = re.compile(r'\W+').split(s) # \W : ,
print(r1)
>>> ['aaa', '123', 'bbb']
sub():
"""
sub() : ,
"""
1: , ,
eg:
s = "aaa%%123@@bbb"
r1 = re.compile(r'\W+').sub(' ',s)
print(r1)
>>> aaa 123 bbb
2: ,
eg:
s = "aaa%%123@@bbb"
r1 = re.compile(r'\W+').sub(lambda a:a.group()*2, s)
print(r1)
>>> aaa%%%%123@@@@bbb
: %% @@, 2 , %%%% @@@@
subn():
"""
subn() sub() , ,( , )
"""
s = "aaa%%123@@bbb"
r1 = re.compile(r'\W+').subn(' ',s)
print(r1)
>>> ('aaa 123 bbb', 2)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
awk 상용 명령awk 는 모든 입력 줄 을 하나의 기록 으로 인식 하고 그 줄 의 모든 단어 도 메 인 을 하나의 필드 로 인식 합 니 다. ARGC 명령 줄 에 awk 스 크 립 트 가 들 어 오 는 매개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.