Documentation ho an'ny Re module ho an'ny Python 3 in. Re module ho an'ny fiteny mahazatra

Ny fiteny mahazatra dia singa tena malaza amin'ny fiteny fandaharana rehetra. Manampy anao hahazo haingana ny fampahalalana ilainao izy ireo. Indrindra indrindra, ampiasaina izy ireo rehefa ilaina ny fanodinana lahatsoratra. Python dia tonga miaraka amin'ny maody manokana amin'ny alàlan'ny default. re, izay tompon'andraikitra amin'ny fiasana amin'ny fomba fiteny mahazatra.

Androany isika dia hiresaka amin'ny an-tsipiriany momba ny inona izany amin'ny ankapobeny, ny fomba hiarahana amin'izy ireo ary ny fomba fiasan'ny module re hanampy.

Fiteny tsy tapaka: fampidirana

Inona no fampiasana ny teny mahazatra? Saika ny rehetra. Ohatra, ireto:

  1. Fampiharana an-tranonkala mila fanamarinana lahatsoratra. Ohatra iray mahazatra ny mpanjifa mailaka an-tserasera.
  2. Tetik'asa hafa rehetra mifandraika amin'ny lahatsoratra, angon-drakitra sy ny sisa.

Alohan'ny hanombohantsika manadihady ny syntax dia tokony ho azontsika amin'ny antsipiriany kokoa ny fitsipika fototra amin'ny fampandehanana ny tranomboky re ary amin'ny ankapobeny, inona no tsara amin'ny ankapobeny. Hanome ohatra avy amin'ny fampiharana tena izy ihany koa izahay, izay hamaritana ny fomba fampiasana azy ireo. Azonao atao ny mamorona môdely toy izany, mety ho anao hanao asa isan-karazany miaraka amin'ny lahatsoratra.

Inona no atao hoe môdely ao amin'ny tranomboky Re?

Miaraka amin'izany dia afaka mikaroka fampahalalana isan-karazany ianao, mahazo fampahalalana mifanaraka amin'izy ireo, mba hahatonga ny fiasa hafa hampifanarahana kokoa. Ary, mazava ho azy, ny fanodinana an'io data io.

Raiso, ohatra, ity môdely manaraka ity: s+. Midika hoe toetran'ny habaka rehetra izany. Raha manisy marika miampy azy ianao dia midika izany fa misy habaka mihoatra ny iray ny lamina. Afaka mifanandrify amin'ireo tarehin-tsoratra antsoina hoe miaraka amin'ny t+.

Alohan'ny hampiasana azy ireo dia mila manafatra ny tranomboky ianao Re. Aorian'izay dia mampiasa baiko manokana izahay hanangonana ny môdely. Izany dia atao amin'ny dingana roa.

>>> import re

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

Amin'ny ankapobeny, ity kaody ity dia manatanteraka ny asa fanangonana môdely azo ampiasaina. ohatra, mitady toerana (iray na maromaro).

Mahazoa fampahalalana misaraka amin'ny tady samihafa amin'ny fampiasana fiteny mahazatra

Aoka hatao hoe manana fari-pitsipika misy ireto fampahalalana manaraka ireto isika.

>>> text = “””100 INF Informatika

213 MAT Matematika  

156 MALAGASY»»»

Misy fiofanana telo ao anatiny. Ny tsirairay amin'izy ireo dia misy ampahany telo - isa, code ary anarana. Hitantsika fa tsy mitovy ny elanelana misy eo amin’ireo teny ireo. Inona no tokony hatao mba hanaparitahana ity andalana ity ho isa sy teny misaraka? Misy fomba roa hanatrarana izany tanjona izany:

  1. miantso asa re.split.
  2. mampihatra asa Saraho ho an'ny My Notes.

Ity misy ohatra iray amin'ny fampiasana ny syntax isaky ny fomba ho an'ny fari-piadidiantsika.

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

# or

>>> regex.split(text)

Output: ['100', 'INF', 'Informatique', '213', 'MAT', 'Math', '156', 'ENG', 'English']

Amin'ny ankapobeny dia azo ampiasaina ireo fomba roa ireo. Saingy raha ny marina dia mora kokoa ny mampiasa fomba fiteny mahazatra fa tsy mampiasa ny fiasa imbetsaka. re.split.

Mitadiava lalao miaraka amin'ny fiasa telo

Aoka hatao hoe mila maka isa fotsiny avy amin'ny tady. Inona no tokony hatao amin'izany?

re.findall()

Ity misy tranga fampiasana ho an'ny asa findall(), izay, miaraka amin'ny fitenenana mahazatra, dia ahafahanao manala ny fisehoan'ny isa iray na maromaro avy amin'ny fari-tsoratra iray.

>>> pirinty (soratra)  

100 INF Informatika

213 MAT Matematika  

156 MALAGASY English

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

>>> regex_num.findall(text)  

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

Miaraka amin'ny marika d, dia nampiasa môdely iray izahay izay manondro tanteraka ny sanda nomerika hita ao anaty faribolana na lahatsoratra. Ary satria nampiana + iray izahay, midika izany fa tsy maintsy misy isa iray farafahakeliny. 

Azonao atao koa ny mampiasa ny famantarana * mba hamaritana fa tsy ilaina ny fisian'ny isa iray mba hahitana lalao iray.

Fa amin'ny tranga misy anay, satria nampiasa + izahay, dia nalainay tamin'ny findall() 1 na maromaro fanondroana taranja nomerika avy amin'ny lahatsoratra. Noho izany, amin'ny tranga misy antsika, ny fitenenana mahazatra dia miasa ho toy ny fandrindrana ny asa.

re.search() vs re.match()

Araka ny azonao vinavinaina avy amin'ny anaran'ireo fiasa, ny voalohany dia mitady lalao amin'ny lahatsoratra. Fanontaniana: Inona no maha samy hafa ny findall? Ny tanjona dia ny mamerina zavatra manokana mifanaraka amin'ny lamina, fa tsy ny filaharan'ny vokatra hita amin'ny endrika lisitra, toy ny asa teo aloha.

Manao toy izany koa ny asa re.match. Ny syntax ihany no hafa. Ny môdely dia tsy maintsy apetraka eo am-piandohana. 

Andeha isika haka ohatra mampiseho izany.

>>> # mamorona faribolana misy soratra

>>> text2 = «»»INF Informatika

213 MAT Matematika 156″»»  

>>> # manangona regex ary mitady lamina

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

>>> s = regex_num.search(text2)  

>>> print('Tondro voalohany: ', s.start())  

>>> print('Tondro farany: ', s.end())  

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

Fanondroana voalohany: 17 

Fanondroana farany: 20

213

Raha te hahazo vokatra mitovy amin'izany ianao amin'ny fomba hafa dia azonao ampiasaina ny fiasa vondrona ().

Fanoloana ampahany amin'ny lahatsoratra amin'ny tranomboky Re

Mba hanoloana lahatsoratra dia ampiasao ny fiasa re.sub(). Aoka hatao hoe niova kely ny lisitry ny taranjay. Hitantsika fa aorian'ny sanda nomerika tsirairay dia manana tabilao isika. Ny andraikitray dia ny manambatra ireo filaharana rehetra ireo ho andalana iray. Mba hanaovana izany dia mila soloina ny teny hoe s+ mandalo 

Ny lahatsoratra tany am-boalohany dia:

# mamorona faribolana misy soratra

>>> text = “””100 INF t Informatika

213 MAT t Matematika  

156 MALAGASY t Malagasy»»»  

>>> pirinty (soratra)  

100 Fampahafantarana Informatika

213 MAT Matematika  

156 ENG anglisy

Mba hanatanterahana ny asa tiana dia nampiasa ireto andalana code manaraka ireto izahay.

# soloy toerana iray na maromaro amin'ny 1

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

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

Vokatr'izany dia manana andalana iray isika. 

com comotra 101 MATMATEMAMS 205 ENGLISH

Diniho izao olana hafa izao. Tsy miatrika ny asa fametrahana toerana isika. Zava-dehibe kokoa ho antsika ny hoe manomboka amin'ny tsipika vaovao ny anaran'ny taranja rehetra. Mba hanaovana izany, dia ampiasaina ny fomba fiteny iray izay manampy andalana vaovao amin'ny exception. Fomba fiteny inona izany?

fitehirizam-boky Re manohana endri-javatra iray toy ny mifanentana ratsy. Tsy mitovy amin'ny an'ny mivantana izy io satria misy teny fihobiana alohan'ny tsipika. Izany hoe, raha mila mandingana ny endri-tsoratra vaovao isika dia mila manoratra !n fa tsy n.

Mahazo ity code manaraka ity izahay.

# esory ny habaka rehetra afa-tsy ny andalana vaovao  

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

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

100 INF Informatika

213 MAT Matematika  

156 MALAGASY English

Inona no atao hoe vondrona fanehoan-kevitra mahazatra?

Miaraka amin'ny fanampian'ny vondrona fanehoan-kevitra tsy tapaka, dia afaka mahazo ny zavatra irina amin'ny endrika singa miavaka, fa tsy amin'ny andalana iray. 

Eritrereto hoe mila maka ny laharan'ny fampianarana, ny kaody ary ny anarana isika fa tsy amin'ny andalana iray, fa ho singa misaraka. Mba hamitana ny asa dia mila manoratra fehezan-dalàna marobe tsy ilaina ianao. 

Raha ny marina, ny asa dia azo tsotsotra be. Azonao atao ny manangona ny môdely ho an'ny fidirana rehetra ary mamaritra fotsiny ny angon-drakitra ilainao alaina amin'ny bracket.

Ho vitsy dia vitsy ny andalana. 

# Mamorona andian-dahatsoratra modely amin'ny taranja ary alaivo izy ireo

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

>>> re.findall(course_pattern, text)  

[('100', 'INF', 'Siansa informatika'), ('213', 'MAT', 'Math'), ('156', 'ENG', 'Anglisy')]

Ny foto-kevitry ny "mitsiriritra" mifanentana

Araka ny fenitra, ny fomba fiteny mahazatra dia nomanina mba hanesorana ny habetsaky ny angona mifanandrify indrindra. Ary na dia mila kely kokoa aza ianao.

Andeha hojerentsika santionany kaody HTML izay ilaintsika hahazoana ny marika.

>>> text = "Ohatra amin'ny fampifanarahana ny fomba fiteny mahazatra"  

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

['Ohatra amin'ny fampifanarahana amin'ny fomba fiteny tsy tapaka']

Raha tokony haka marika iray monja i Python dia nahazo ny tady manontolo. Izany no antony iantsoana azy hoe tia vola.

Ary inona no atao mba hahazoana ny marika ihany? Amin'ity tranga ity, mila mampiasa lazy matching ianao. Mba hamaritana ny fomba fiteny toy izany, dia asiana marika fanontaniana eo amin'ny faran'ny lamina.

Hahazo ity kaody manaraka ity ianao sy ny fivoahan'ny mpandika teny.

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

[", ”]

Raha tsy maintsy mahazo ny fisehoan-javatra voalohany ihany, dia ny fomba no ampiasaina fikarohana ().

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

"

Avy eo dia ny marika fanokafana ihany no ho hita.

Fomba fiteny malaza

Ity misy tabilao misy ny fomba fiteny mahazatra matetika ampiasaina.

Documentation ho an'ny Re module ho an'ny Python 3 in. Re module ho an'ny fiteny mahazatra

Famaranana

Ny fomba fiasa fototra indrindra amin'ny fampiasana fiteny mahazatra ihany no nodinihinay. Na izany na tsy izany, hitanao ny maha-zava-dehibe azy ireo. Ary eto dia tsy misy maha-samihafa azy na ilaina ny manadihady ny lahatsoratra manontolo na ny sombiny tsirairay, na ilaina ny manadihady lahatsoratra iray amin'ny tambajotra sosialy na manangona angon-drakitra mba hikarakarana azy any aoriana. Manampy azo ianteherana amin’io raharaha io ny fitenenana tsy tapaka.

Izy ireo dia mamela anao hanao asa toy ny:

  1. Famaritana ny endriky ny angona, toy ny adiresy mailaka na laharan-telefaona.
  2. Maka tady ary mizara azy ho tady kely maromaro.
  3. Manaova hetsika isan-karazany miaraka amin'ny lahatsoratra, toy ny fikarohana, fanalana ny fampahalalana ilaina, na fanoloana ampahany amin'ny endri-tsoratra.

Ny fomba fiteny mahazatra koa dia ahafahanao manao asa tsy misy dikany. Raha vao jerena dia tsy mora ny mahafehy io siansa io. Saingy amin'ny fampiharana, ny zava-drehetra dia manara-penitra, noho izany dia ampy ny mamantatra azy indray mandeha, ary avy eo io fitaovana io dia azo ampiasaina tsy amin'ny Python, fa amin'ny fiteny fandaharana hafa. Na ny Excel aza dia mampiasa fitenenana mahazatra mba handrindrana ny fanodinana data. Noho izany dia fahotana ny tsy mampiasa io fitaovana io.

Leave a Reply