Cov ntaub ntawv rau Re module rau Python 3 hauv . Re module rau cov lus qhia tsis tu ncua

Cov kab lus tsis tu ncua yog ib feem nrov ntawm yuav luag txhua yam lus programming. Lawv pab koj nkag tau sai sai rau cov ntaub ntawv koj xav tau. Tshwj xeeb, lawv tau siv thaum tsim nyog los ua cov ntawv nyeem. Python los nrog ib qho tshwj xeeb module los ntawm lub neej ntawd. re, uas yog lub luag haujlwm rau kev ua haujlwm nrog cov lus qhia tsis tu ncua.

Niaj hnub no peb yuav tham nyob rau hauv kom meej txog dab tsi nws yog feem ntau, yuav ua li cas ua hauj lwm nrog lawv thiab yuav ua li cas lub module re yuav pab.

Cov lus qhia tsis tu ncua: kev taw qhia

Dab tsi yog kev siv cov lus hais tsis tu ncua? Yuav luag tag nrho. Piv txwv li, cov no:

  1. Cov ntawv thov web uas xav tau kev lees paub cov ntawv nyeem. Ib qho piv txwv yog cov neeg xa ntawv online.
  2. Lwm cov haujlwm ntsig txog cov ntawv, databases thiab lwm yam.

Ua ntej peb pib parsing lub syntax, peb yuav tsum to taub nyob rau hauv ntau nthuav dav cov ntsiab cai ntawm kev ua hauj lwm ntawm lub tsev qiv ntawv re thiab feem ntau, dab tsi feem ntau zoo txog nws. Peb kuj tseem yuav muab piv txwv los ntawm kev xyaum tiag tiag, qhov twg peb yuav piav qhia txog cov txheej txheem ntawm lawv siv. Koj tuaj yeem tsim cov qauv zoo li no, haum rau koj los ua ntau yam haujlwm nrog cov ntawv nyeem.

Dab tsi yog tus qauv hauv Re Library?

Nrog nws, koj tuaj yeem tshawb nrhiav cov ntaub ntawv ntawm ntau hom, tau txais cov ntaub ntawv sib raug rau lawv, txhawm rau ua kom lwm yam kev hloov pauv ntau dua. Thiab, ntawm chav kawm, ua cov ntaub ntawv no.

Piv txwv li, coj tus qauv hauv qab no: s+. Nws txhais tau tias txhua qhov chaw cim. Yog tias koj ntxiv ib qho ntxiv rau nws, qhov no txhais tau tias tus qauv suav nrog ntau tshaj ib qhov chaw. Nws tuaj yeem phim cov cim tab uas hu nrog t+.

Ua ntej siv lawv, koj yuav tsum tau import lub tsev qiv ntawv Re. Tom qab ntawd, peb siv cov lus txib tshwj xeeb los sau cov qauv. Qhov no yog ua nyob rau hauv ob kauj ruam.

> > > import rov

> > > regex = re.compile('s+')

Tshwj xeeb, qhov chaws no ua haujlwm ntawm kev sau cov qauv uas tuaj yeem siv tau. Piv txwv li, nrhiav qhov chaw (ib lossis ntau dua).

Tau txais cov ntaub ntawv sib cais los ntawm cov hlua sib txawv siv cov kab lus tsis tu ncua

Xav tias peb muaj qhov sib txawv uas muaj cov ntaub ntawv hauv qab no.

> > > text = """100 INF Informatics

213 MAT Mathematics  

156 ENG English»»»

Nws muaj peb qhov kev cob qhia. Txhua ntawm lawv muaj peb ntu - tus lej, code thiab npe. Peb pom tias lub caij nyoog ntawm cov lus no txawv. Yuav ua li cas txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau cais cov lej thiab cov lus? Muaj ob txoj hauv kev kom ua tiav lub hom phiaj no:

  1. hu ua function re.sib.
  2. thov ua haujlwm cais rau rov rex.

Ntawm no yog ib qho piv txwv ntawm kev siv cov syntax ntawm txhua txoj hauv kev rau peb qhov sib txawv.

> > > re.split('s+', text)  

# lossis

> > > regex.split(text)

Cov zis: ['100', 'INF', 'Computer Science', '213', 'MAT', 'Math', '156', 'ENG', 'English']

Feem ntau, ob txoj kev siv tau. Tab sis nws ua tau yooj yim dua los siv cov lus qhia tsis tu ncua siv cov haujlwm ntau zaus. re.sib.

Nrhiav qhov sib tw nrog peb txoj haujlwm

Cia peb hais tias peb yuav tsum rho tawm cov lej tsuas yog los ntawm txoj hlua. Dab tsi yuav tsum tau ua rau qhov no?

re.findall()

Ntawm no yog ib rooj plaub rau kev ua haujlwm findall(), uas, ua ke nrog cov kab lus tsis tu ncua, tso cai rau koj rho tawm qhov tshwm sim ntawm ib lossis ntau tus lej los ntawm cov ntawv nyeem sib txawv.

> > > print(text)  

100 INF Cov Ntaub Ntawv

213 MAT Mathematics  

156 ENG English

>>> regex_num = re.compile('d+')  

> > > regex_num.findall(text)  

['100', '213', '156']

Ua ke nrog lub cim d, peb siv tus qauv uas qhia tias muaj pes tsawg tus nqi nyob hauv qhov sib txawv lossis cov ntawv nyeem. Thiab txij li thaum peb ntxiv ib qho + nyob ntawd, qhov no txhais tau tias tsawg kawg ib tus lej yuav tsum muaj tam sim no. 

Koj tuaj yeem siv lub * kos npe los qhia tias qhov muaj tus lej tsis tas yuav tsum muaj rau kev sib tw kom pom.

Tab sis nyob rau hauv peb cov ntaub ntawv, txij li thaum peb siv +, peb rho tawm nrog findall() 1 lossis ntau qhov kev xaiv digital ntawm cov chav kawm los ntawm cov ntawv nyeem. Yog li, nyob rau hauv peb cov ntaub ntawv, cov lus qhia tsis tu ncua ua raws li kev teeb tsa rau kev ua haujlwm.

re.search() vs re.match()

Raws li koj tuaj yeem twv los ntawm lub npe ntawm cov haujlwm, thawj zaug tshawb nrhiav qhov sib tw hauv cov ntawv nyeem. Nqe Lus Nug: Qhov txawv ntawm yog dab tsi findall? Lub ntsiab lus yog tias nws rov qab ib qho khoom tshwj xeeb uas phim cov qauv, thiab tsis yog tag nrho cov kab ke ntawm cov txiaj ntsig pom hauv daim ntawv teev npe, zoo li cov haujlwm dhau los.

Nyob rau hauv lem, lub re.match muaj nuj nqi ua tib yam. Tsuas yog cov syntax txawv. Tus qauv yuav tsum tau muab tso rau ntawm qhov pib. 

Cia peb ua ib qho piv txwv uas qhia qhov no.

>>> # tsim qhov sib txawv nrog cov ntawv

>>> text2 = «»»INF Informatics

213 MAT Mathematics 156″»»  

> > > # compile regex thiab nrhiav cov qauv

>>> regex_num = re.compile('d+')  

>>> s = regex_num.search(text2)  

> > print('First index:', s.start())  

> > print('Last index:', s.end())  

> > > print(text2[s.start():s.end()]) 

Thawj Index: 17 

Last Index: 20

213

Yog tias koj xav tau cov txiaj ntsig zoo sib xws hauv txoj kev sib txawv, koj tuaj yeem siv cov haujlwm pab pawg( ).

Hloov ib feem ntawm cov ntawv nrog Re Library

Txhawm rau hloov cov ntawv nyeem, siv lub luag haujlwm re.sub(). Xav tias peb daim ntawv teev cov kev kawm tau hloov me ntsis. Peb pom tias tom qab txhua tus nqi digital peb muaj tab. Peb lub luag haujlwm yog los muab tag nrho cov kab ke no ua ib kab. Txhawm rau ua qhov no, peb yuav tsum hloov cov lus qhia s + kom dhau 

Cov ntawv qub yog:

# tsim qhov sib txawv nrog cov ntawv

>>> text = """100 INF t Informatics

213 MAT t Math  

156 ENG t English»»»  

> > > print(text)  

100 PAB Khoos phis tawj science

213 MAS Kev kawm txog zauv  

156 UAS English

Txhawm rau ua qhov haujlwm xav tau, peb siv cov kab hauv qab no ntawm cov cai.

# Hloov ib lossis ntau qhov chaw nrog 1

> > > regex = re.compile('s+')  

>>> print(regex.sub(' ', text))  

Yog li ntawd, peb muaj ib kab. 

101 COM Computers 205 MAT Mathematics 189 ENG English

Tam sim no xav txog lwm qhov teeb meem. Peb tsis tau ntsib nrog txoj haujlwm ntawm kev tso chaw. Nws yog ib qho tseem ceeb tshaj rau peb tias tag nrho cov npe kawm pib ntawm kab tshiab. Txhawm rau ua qhov no, lwm qhov kev qhia yog siv uas ntxiv ib kab tshiab rau qhov kev zam. Qhov no yog dab tsi?

Library Re txhawb nqa ib qho tshwj xeeb xws li kev sib piv tsis zoo. Nws txawv ntawm qhov ncaj qha nyob rau hauv uas nws muaj ib qho exclamation point ua ntej lub slash. Qhov ntawd yog, yog tias peb yuav tsum hla tus cim kab tshiab, ces peb yuav tsum sau !n es tsis txhob n.

Peb tau txais cov cai hauv qab no.

# tshem tawm txhua qhov chaw tshwj tsis yog kab tshiab  

>>> regex = re.compile('((?!n)s+)')  

>>> print(regex.sub(' ', text))  

100 INF Cov Ntaub Ntawv

213 MAT Mathematics  

156 ENG English

Dab tsi yog pab pawg qhia tawm tsis tu ncua?

Nrog kev pab los ntawm pab pawg ntawm cov lus qhia tsis tu ncua, peb tuaj yeem tau txais cov khoom xav tau hauv daim ntawv ntawm cov khoom sib cais, thiab tsis nyob hauv ib kab. 

Piv txwv tias peb yuav tsum tau txais cov lej kawm, cov lej thiab lub npe tsis nyob hauv ib kab, tab sis raws li cov ntsiab lus sib cais. Txhawm rau ua kom tiav txoj haujlwm, koj yuav tsum tau sau ntau tus lej ntawm cov kab tsis tsim nyog. 

Qhov tseeb, txoj haujlwm tuaj yeem yooj yim heev. Koj tuaj yeem sau cov qauv rau txhua qhov nkag thiab tsuas yog qhia cov ntaub ntawv uas koj xav tau los ntawm cov kab ke.

Yuav muaj cov kab tsawg heev. 

# tsim pab pawg ntawm cov ntawv nyeem cov qauv thiab rho tawm lawv

>>> course_pattern = '([0-9]+)s*([A-ZY]{3})s*([a-zA-ZoY]{4,})'  

> > > re.findall(course_pattern, text)  

[('100', 'INF', 'Computer Science'), ('213', 'MAT', 'Math'), ('156', 'ENG', 'English')]

Lub tswvyim ntawm "greedy" matching

Raws li tus qauv, cov kab lus tsis tu ncua yog programmed kom rho tawm qhov siab tshaj plaws ntawm cov ntaub ntawv sib xws. Thiab txawm tias koj xav tau ntau dua.

Cia peb saib ib qho piv txwv HTML code qhov twg peb yuav tsum tau txais tag.

> > > text = "Piv txwv ntawm Greedy Regular Expression Matching"  

> > > re.findall('', text)  

['Piv txwv ntawm Greedy Regular Expression Matching']

Tsis txhob rho tawm ib qho tag, Python tau txais tag nrho cov hlua. Yog vim li ntawd thiaj hu ua neeg siab hlob.

Thiab yuav ua li cas kom tau tsuas yog tag? Hauv qhov no, koj yuav tsum tau siv tub nkeeg sib piv. Txhawm rau qhia qhov kev qhia zoo li no, ib qho lus nug ntxiv rau qhov kawg ntawm tus qauv.

Koj yuav tau txais cov cai hauv qab no thiab cov zis ntawm tus neeg txhais lus.

> > > re.findall('', text)  

[”, ”]

Yog tias nws yuav tsum tau txais tsuas yog thawj zaug tshwm sim, ces txoj kev siv nrhiav ( ).

re.search('', text).group()  

"

Tom qab ntawd tsuas yog qhov qhib tag yuav pom.

Nrov nthuav qhia Templates

Ntawm no yog ib lub rooj uas muaj feem ntau siv cov qauv qhia.

Cov ntaub ntawv rau Re module rau Python 3 hauv . Re module rau cov lus qhia tsis tu ncua

xaus

Peb tau txiav txim siab tsuas yog txoj hauv kev yooj yim tshaj plaws rau kev ua haujlwm nrog cov lus hais tsis tu ncua. Txawm li cas los xij, koj tau pom tias lawv tseem ceeb npaum li cas. Thiab ntawm no nws tsis muaj qhov sib txawv txawm tias nws yog qhov tsim nyog los txheeb xyuas tag nrho cov ntawv lossis nws cov khoom tawg, txawm tias nws yuav tsum tau txheeb xyuas cov ntawv tshaj tawm hauv social network lossis sau cov ntaub ntawv txhawm rau ua tiav nws tom qab. Cov lus qhia tsis tu ncua yog ib tus neeg pab txhim khu kev qha hauv qhov teeb meem no.

Lawv tso cai rau koj ua cov haujlwm xws li:

  1. Qhia meej txog hom ntaub ntawv, xws li email chaw nyob lossis tus xov tooj.
  2. Tau txais ib txoj hlua thiab muab faib ua ob peb txoj hlua me me.
  3. Ua ntau yam haujlwm nrog cov ntawv nyeem, xws li tshawb nrhiav, rho tawm cov ntaub ntawv tsim nyog, lossis hloov ib feem ntawm cov cim.

Cov lus hais tsis tu ncua kuj tso cai rau koj ua cov haujlwm tsis tseem ceeb. Thaum xub thawj siab ib muag, mastering no science tsis yooj yim. Tab sis hauv kev xyaum, txhua yam yog tus qauv, yog li nws txaus los txiav txim siab nws ib zaug, tom qab ntawd cov cuab yeej no tuaj yeem siv tsis yog hauv Python nkaus xwb, tab sis kuj yog lwm yam lus programming. Txawm tias Excel siv cov lus qhia tsis tu ncua los ua kom cov ntaub ntawv ua tiav. Yog li nws yog ib qho txhaum uas tsis siv cov cuab yeej no.

Sau ntawv cia Ncua