Doiciméadú don mhodúl Re do Python 3 in . Re modúl le haghaidh nathanna cainte rialta

Tá nathanna rialta ina gcuid de bheagnach aon teanga ríomhchlárúcháin. Cabhraíonn siad leat rochtain tapa a fháil ar an bhfaisnéis atá uait. Go háirithe, úsáidtear iad nuair is gá téacs a phróiseáil. Tagann Python le modúl speisialta de réir réamhshocraithe. re, atá freagrach as oibriú le habairtí rialta.

Sa lá atá inniu beimid ag caint go mion faoi cad é i gcoitinne, conas a bheith ag obair leo agus conas an modúl re cabhróidh sé leat.

Nathanna rialta: réamhrá

Cad iad na húsáidí a bhaineann le slonn rialta? Beagnach ar fad. Mar shampla, iad seo:

  1. Feidhmchláir Ghréasáin a dteastaíonn bailíochtú téacs uathu. Sampla tipiciúil is ea cliaint ríomhphoist ar líne.
  2. Aon tionscadail eile a bhaineann le téacsanna, bunachair shonraí agus mar sin de.

Sula dtosaímid ar an gcomhréir a pharsáil, ba cheart dúinn na bunphrionsabail a bhaineann le feidhmiú na leabharlainne a thuiscint níos mine re agus go ginearálta, cad atá go maith mar gheall air go ginearálta. Tabharfaimid samplaí freisin ó fhíorchleachtas, áit a ndéanfaimid cur síos ar mheicníocht a n-úsáide. Is féidir leat teimpléad den sórt sin a chruthú, atá oiriúnach duit chun raon leathan oibríochtaí a dhéanamh le téacs.

Cad is teimpléad sa leabharlann Re?

Leis, is féidir leat faisnéis de chineálacha éagsúla a chuardach, faisnéis a fhreagraíonn dóibh a fháil, chun feidhmeanna eile a dhéanamh níos oiriúnaithe. Agus, ar ndóigh, na sonraí seo a phróiseáil.

Mar shampla, tóg an teimpléad seo a leanas: s+. Ciallaíonn sé aon charachtar spáis. Má chuireann tú comhartha móide leis, ciallaíonn sé seo go n-áirítear níos mó ná spás amháin sa phatrún. Is féidir é a mheaitseáil fiú carachtair cluaisín a dtugtar le t+.

Sula n-úsáideann tú iad, ní mór duit an leabharlann a allmhairiú Re. Tar éis sin, úsáidimid ordú speisialta chun an teimpléad a thiomsú. Déantar é seo in dhá chéim.

>>> allmhairiú re

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

Go sonrach, déanann an cód seo an oibríocht a bhaineann le teimpléad a thiomsú is féidir a úsáid. mar shampla, chun spásanna a chuardach (ceann amháin nó níos mó).

Eolas ar leith a fháil ó teaghráin éagsúla ag baint úsáide as nathanna rialta

Cuir i gcás go bhfuil athróg againn ina bhfuil an fhaisnéis seo a leanas.

>>> text = “””100 INF Faisnéisíocht

213 Matamaitic MAT  

156 IR Béarla»»»

Tá trí chúrsa oiliúna ann. Tá trí chuid i ngach ceann acu – uimhir, cód agus ainm. Feicimid go bhfuil an t-eatramh idir na focail seo difriúil. Cad atá le déanamh chun an líne seo a bhriseadh ina huimhreacha agus ina focail ar leith? Tá dhá mhodh ann chun an sprioc seo a bhaint amach:

  1. glaoigh ar fheidhm scoilt.
  2. feidhm a chur i bhfeidhm scoilt do regex.

Seo sampla de chomhréir gach ceann de na modhanna dár n-athróg a úsáid.

>>> re.split('s+', téacs)  

# nó

>>> regex.split(text)

Aschur: ['100', 'INF', 'Eolaíocht Ríomhaireachta', '213', 'MAT', 'Math', '156', 'ENG', 'Béarla']

Go ginearálta, is féidir an dá mhodh a úsáid. Ach tá sé i bhfad níos éasca i ndáiríre slonn rialta a úsáid seachas an fheidhm a úsáid go minic. scoilt.

Torthaí a aimsiú le trí fheidhm

Ligean le rá nach gá dúinn ach uimhreacha a bhaint as teaghrán. Cad is gá a dhéanamh chuige seo?

athfháil()

Seo cás úsáide don fheidhm aimsitheoir(), a ligeann duit, in éineacht le sloinn rialta, tarluithe d'uimhir amháin nó níos mó a bhaint as athróg téacs.

>>> cló (téacs)  

100 Faisnéisíocht INF

213 Matamaitic MAT  

156 Béarla

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

>>> regex_num.findall(text)  

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

In éineacht leis an tsiombail d, d'úsáideamar teimpléad a léiríonn go hiomlán aon luach uimhriúil atá suite in athróg nó i dtéacs. Agus ós rud é gur chuir muid ceann + ann, ciallaíonn sé seo go gcaithfidh uimhir amháin ar a laghad a bheith i láthair. 

Is féidir leat an comhartha * a úsáid freisin chun a shonrú nach bhfuil láithreacht digite ag teastáil chun meaitseáil a aimsiú.

Ach inár gcás, ós rud é úsáid againn +, sliocht againn le aimsitheoir() 1 ainmniú digiteach nó níos mó de chúrsaí ón téacs. Mar sin, inár gcás, feidhmíonn nathanna rialta mar shocruithe don fheidhm.

taighde() vs ath.mheaitseáil()

Mar is féidir leat buille faoi thuairim ó ainm na bhfeidhmeanna, cuardaigh an chéad chluiche ar chluiche sa téacs. Ceist: Cad é an difríocht idir aimsi? Is é an pointe go dtugann sé rud ar leith ar ais a thagann leis an bpatrún, agus ní seicheamh iomlán na dtorthaí a fuarthas i bhfoirm liosta, cosúil leis an bhfeidhm roimhe seo.

Ina dhiaidh sin, déanann an fheidhm re.match mar an gcéanna. Níl ach an chomhréir difriúil. Ní mór an teimpléad a chur ag an tús. 

Glacaimis sampla a léiríonn seo.

>>> # cruthaigh athróg le téacs

>>> text2 = «»»INF Faisnéisíocht

213 MAT Matamaitic 156″»»  

>>> # tiomsaigh regex agus lorg patrúin

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

>>> s = regex_num.search(text2)  

>>> print('An chéad innéacs:', s.start())  

>>> print('Innéacs deireanach:', s.end())  

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

An chéad innéacs: 17 

Innéacs deiridh: 20

213

Más mian leat toradh comhchosúil a fháil ar bhealach difriúil, is féidir leat an fheidhm a úsáid grúpa().

Leabharlann Re a chur in ionad cuid den téacs

Chun téacs a athsholáthar, bain úsáid as an fheidhm ath.sub(). Cuir i gcás go bhfuil athrú beag tagtha ar ár liosta cúrsaí. Feicimid go bhfuil cluaisín againn tar éis gach luach digiteach. Is é an tasc atá againn ná an seicheamh seo go léir a chomhcheangal in aon líne amháin. Chun seo a dhéanamh, ní mór dúinn an slonn s+ a ionadú chun pas a fháil 

Ba é an buntéacs ná:

# cruthaigh athróg le téacs

>>> text = “””100 INF t Faisnéisíocht

213 MAT t Math  

156 NG t Béarla »» »  

>>> cló (téacs)  

100 EOLAS Eolaíocht ríomhaireachta

213 MAT Matamaitic  

156 GA english

Chun an oibríocht inmhianaithe a dhéanamh, d'úsáideamar na línte cód seo a leanas.

# 1 a chur in ionad spás amháin nó níos mó

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

>>> print(regex.sub('', téacs))  

Mar thoradh air sin, tá líne amháin againn. 

101 Ríomhairí COM 205 Matamaitic MAT 189 Eng Béarla

Anois smaoineamh ar fhadhb eile. Níl an cúram orainn spásanna a chur. Tá sé i bhfad níos tábhachtaí dúinne go dtosaíonn gach ainm cúrsa ar líne nua. Chun seo a dhéanamh, úsáidtear slonn eile a chuireann líne nua leis an eisceacht. Cén sórt cainte é seo?

Leabharlann Re tacaíonn sé le gné cosúil le meaitseáil dhiúltach. Tá sé difriúil leis an gceann díreach sa mhéid is go bhfuil pointe exclamation ann roimh an slaise. Is é sin, má theastaíonn uainn an carachtar nualíne a scipeáil, ansin caithfimid !n a scríobh in ionad n.

Faighimid an cód seo a leanas.

# bain gach spás seachas líne nua  

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

>>> print(regex.sub('', téacs))  

100 Faisnéisíocht INF

213 Matamaitic MAT  

156 Béarla

Cad iad grúpaí cainte rialta?

Le cabhair ó ghrúpaí de nathanna rialta, is féidir linn na rudaí atá ag teastáil a fháil i bhfoirm eilimintí ar leithligh, agus ní i líne amháin. 

Cuir i gcás go gcaithfimid uimhir an chúrsa, an cód agus an t-ainm a fháil ní in aon líne amháin, ach mar eilimintí ar leith. Chun an tasc a chomhlánú, beidh ort líon mór línte cód gan ghá a scríobh. 

Go deimhin, is féidir an tasc a shimpliú go mór. Is féidir leat an teimpléad a thiomsú do gach iontráil agus na sonraí a theastaíonn uait a fháil ó na lúibíní a shonrú.

Beidh líon an-bheag línte ann. 

# cruthaigh grúpaí de theimpléid téacs an chúrsa agus bain amach iad

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

>>> re.findall(course_pattern, text)  

[('100', 'INF', 'Eolaíocht Ríomhaireachta'), ('213', 'MAT', 'Math'), ('156', 'ENG', 'Béarla')]

Coincheap na meaitseála “greedy”.

De réir an chaighdeáin, déantar slonn rialta a ríomhchlárú chun an t-uasmhéid sonraí meaitseála a bhaint as. Agus fiú má theastaíonn uait i bhfad níos lú.

Breathnaímid ar chód HTML samplach nuair is gá dúinn an chlib a fháil.

>>> text = “Sampla de Mheaitseáil Rialta Greedy”  

>>> re.findall('', téacs)  

['Sampla de Shloinneadh Rialta Greedy']

In ionad ach clib amháin a bhaint amach, fuair Python an teaghrán iomlán. Sin é an fáth a dtugtar greedy air.

Agus cad atá le déanamh chun an chlib amháin a fháil? Sa chás seo, ní mór duit meaitseáil leisciúil a úsáid. Chun slonn den sórt sin a shonrú, cuirtear ceistmharc le deireadh an phatrúin.

Gheobhaidh tú an cód seo a leanas agus aschur an ateangaire.

>>> re.findall('', téacs)  

[”, ”]

Má tá sé ag teastáil a fháil ach an chéad a tharla, ansin tá an modh a úsáidtear cuardaigh ().

re.search('', téacs).group()  

"

Ansin ní bhfaighidh ach an chlib tosaigh.

Teimpléid Léirithe Coitianta

Seo tábla ina bhfuil na patrúin slonn rialta is coitianta a úsáidtear.

Doiciméadú don mhodúl Re do Python 3 in . Re modúl le haghaidh nathanna cainte rialta

Conclúid

Ní dhearnamar ach na modhanna is bunúsaí chun oibriú le nathanna rialta a mheas. In aon chás, tá tú ag feiceáil cé chomh tábhachtach agus atá siad. Agus anseo ní dhéanann sé aon difríocht cibé an bhfuil sé riachtanach an téacs iomlán nó a chuid blúirí aonair a pharsáil, cibé acu is gá anailís a dhéanamh ar phost ar líonra sóisialta nó sonraí a bhailiú chun é a phróiseáil níos déanaí. Is cúntóir iontaofa iad nathanna rialta san ábhar seo.

Ligeann siad duit tascanna ar nós:

  1. Ag sonrú formáid na sonraí, mar shampla seoladh ríomhphoist nó uimhir theileafóin.
  2. Teaghrán a fháil agus é a roinnt ina roinnt teaghráin níos lú.
  3. Oibríochtaí éagsúla a dhéanamh le téacs, mar shampla cuardach a dhéanamh, an fhaisnéis riachtanach a bhaint amach, nó cuid de na carachtair a athsholáthar.

Ligeann abairtí rialta duit oibríochtaí neamhfhánacha a dhéanamh freisin. Ar an gcéad amharc, níl sé éasca an eolaíocht seo a mháistir. Ach go praiticiúil, tá gach rud caighdeánaithe, agus mar sin is leor é a dhéanamh amach uair amháin, agus ina dhiaidh sin is féidir an uirlis seo a úsáid, ní hamháin i Python, ach freisin in aon teanga cláir eile. Úsáideann fiú Excel nathanna cainte rialta chun próiseáil sonraí a uathoibriú. Mar sin is peaca é gan an uirlis seo a úsáid.

Leave a Reply