Zolemba za gawo la Re la Python 3 mu . Re module yamawu okhazikika

Mawu okhazikika ndi chigawo chodziwika kwambiri cha pafupifupi chinenero chilichonse cha mapulogalamu. Amakuthandizani kuti mupeze mwachangu zomwe mukufuna. Makamaka, amagwiritsidwa ntchito ngati kuli kofunikira kukonza zolemba. Python imabwera ndi gawo lapadera mwachisawawa. re, yomwe ili ndi udindo wogwira ntchito ndi mawu okhazikika.

Lero tikambirana mwatsatanetsatane za momwe zimakhalira, momwe tingagwirire nawo ntchito komanso momwe gawoli re zidzakuthandizani.

Mawu omveka: mawu oyamba

Kodi mawu omwe amagwiritsidwa ntchito nthawi zonse ndi otani? Pafupifupi onse. Mwachitsanzo, awa:

  1. Mapulogalamu apaintaneti omwe amafunikira kutsimikizira mawu. Chitsanzo chodziwika bwino ndi makasitomala a imelo.
  2. Ntchito zina zilizonse zokhudzana ndi zolemba, nkhokwe ndi zina zotero.

Tisanayambe kugawa mawuwo, tiyenera kumvetsetsa mwatsatanetsatane mfundo zazikuluzikulu zogwirira ntchito laibulale. re ndipo zambiri, zomwe zili zabwino zambiri za izo. Tidzaperekanso zitsanzo kuchokera ku zochitika zenizeni, komwe tidzafotokozera momwe amagwiritsira ntchito. Mutha kupanga template yotere, yoyenera kuti muchite ntchito zosiyanasiyana ndi zolemba.

Kodi template mu laibulale ya Re ndi chiyani?

Ndi iyo, mutha kusaka zambiri zamitundu yosiyanasiyana, pezani zidziwitso zofananira nazo, kuti mupangitse ntchito zina kukhala zosinthika. Ndipo, ndithudi, kukonza deta iyi.

Mwachitsanzo, tengani chitsanzo chotsatirachi: s+. Zimatanthawuza khalidwe lililonse la danga. Ngati muwonjezera chizindikiro chowonjezera, ndiye izi zikutanthauza kuti chitsanzocho chimaphatikizapo malo oposa amodzi. Itha kufananiza zilembo zomwe zimatchedwa nazo t+.

Musanagwiritse ntchito, muyenera kuitanitsa laibulale Re. Pambuyo pake, timagwiritsa ntchito lamulo lapadera kuti tipange template. Izi zimachitika munjira ziwiri.

>>> import re

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

Makamaka, code iyi imagwira ntchito yopanga template yomwe ingagwiritsidwe ntchito. mwachitsanzo, kufufuza malo (amodzi kapena angapo).

Kupeza mfundo zosiyana kuchokera ku zingwe zosiyanasiyana pogwiritsa ntchito mawu okhazikika

Tiyerekeze kuti tili ndi zosintha zomwe zili ndi mfundo zotsatirazi.

>>> zolemba = """100 INF Informatics

213 MAT Masamu  

156 ENG English»»»

Lili ndi maphunziro atatu. Aliyense wa iwo ali ndi magawo atatu - nambala, code ndi dzina. Tikuwona kuti nthawi yapakati pa mawu awa ndi yosiyana. Zoyenera kuchita kuti mudutse mzerewu kukhala manambala ndi mawu osiyana? Pali njira ziwiri zokwaniritsira cholinga ichi:

  1. kuitana ntchito kugawanikanso.
  2. gwiritsani ntchito Gawa chifukwa regex.

Nachi chitsanzo chogwiritsa ntchito mawu amtundu uliwonse wa njira zathu zosinthira.

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

# kapena

>>> regex.split(mawu)

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

Kawirikawiri, njira zonsezi zingagwiritsidwe ntchito. Koma ndizosavuta kugwiritsa ntchito mawu okhazikika m'malo mogwiritsa ntchito kangapo. kugawanikanso.

Kupeza machesi okhala ndi ntchito zitatu

Tinene kuti tiyenera kuchotsa manambala okha mu chingwe. Ndi chiyani chomwe chiyenera kuchitidwa pa izi?

re.findall()

Pano pali chitsanzo chogwiritsa ntchito kupeza (), zomwe, pamodzi ndi mawu okhazikika, zimakulolani kuchotsa kupezeka kwa nambala imodzi kapena zingapo kuchokera ku mawu osinthika.

>>> sindikiza (zolemba)  

100 INF Informatics

213 MAT Masamu  

156 ENG English

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

>>> regex_num.findall(zolemba)  

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

Pamodzi ndi chizindikiro cha d, tidagwiritsa ntchito template yomwe imawonetsa mtengo uliwonse wa manambala womwe uli mumitundu kapena mawu. Ndipo popeza tawonjezapo imodzi + pamenepo, izi zikutanthauza kuti osachepera nambala imodzi iyenera kukhalapo. 

Mutha kugwiritsanso ntchito chizindikiro * kuti mufotokozere kuti kupezeka kwa manambala sikofunikira kuti machesi apezeke.

Koma kwa ife, popeza tidagwiritsa ntchito +, tidatulutsa ndi kupeza () 1 kapena zambiri za digito zamaphunziro kuchokera palemba. Chifukwa chake, kwa ife, mawu okhazikika amakhala ngati zoikamo za ntchitoyi.

kufufuza () vs re.match()

Monga momwe mungaganizire kuchokera ku dzina la magwiridwe antchito, woyamba amafufuza zofananira m'mawu. Funso: Kodi pali kusiyana kotani? kupeza? Mfundo ndi yakuti imabwezera chinthu china chomwe chikugwirizana ndi chitsanzo, osati mndandanda wonse wa zotsatira zomwe zapezeka mu mawonekedwe a mndandanda, monga ntchito yapitayi.

Komanso, ntchito ya re.match imachita chimodzimodzi. Ma syntax okha ndi osiyana. Template iyenera kuyikidwa poyambira. 

Tiyeni titenge chitsanzo chosonyeza zimenezi.

>>> # pangani kusintha ndi mawu

>>> text2 = «»»INF Informatics

213 MAT Masamu 156 ″»»  

>>> # phatikizani regex ndikuyang'ana mawonekedwe

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

>>> s = regex_num.search(text2)  

>>> sindikiza ('mlozera woyamba:', s.start())  

>>> sindikiza ('Cholozera chomaliza:', s.end())  

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

Mlozera woyamba: 17 

Mlozera womaliza: 20

213

Ngati mukufuna kupeza zotsatira zofanana mwanjira ina, mutha kugwiritsa ntchito ntchitoyi gulu ().

Kusintha gawo la zolemba ndi Re library

Kuti musinthe mawu, gwiritsani ntchito re.sub(). Tiyerekeze kuti mndandanda wathu wamaphunziro wasintha pang'ono. Tikuwona kuti pambuyo pa mtengo uliwonse wa digito tili ndi tabu. Ntchito yathu ndikuphatikiza zotsatizana zonsezi kukhala mzere umodzi. Kuti tichite izi, tiyenera kusintha mawu s + kudutsa 

Mawu oyamba anali:

# pangani kusintha ndi mawu

>>> zolemba = """100 INF t Informatics

213 MAT t Masamu  

156 ENG t English»»»  

>>> sindikiza (zolemba)  

Zithunzi za 100 Sayansi yamakompyuta

213 MAT masamu  

156 ENG English

Kuti tichite zomwe tikufuna, tidagwiritsa ntchito mizere yotsatirayi ya code.

# sinthani malo amodzi kapena angapo ndi 1

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

>>> sindikiza (regex.sub(' ', zolemba))  

Zotsatira zake, tili ndi mzere umodzi. 

101 COM Makompyuta 205 MAT Masamu 189 ENG English

Tsopano ganizirani vuto lina. Sitikuyang'anizana ndi ntchito yoyika mipata. Ndikofunikira kwambiri kwa ife kuti mayina a maphunziro onse ayambe pamzere watsopano. Kuti tichite izi, mawu ena amagwiritsidwa ntchito omwe amawonjezera mzere watsopano. Kodi mawu awa ndi otani?

Library Re imathandizira chinthu monga kufananitsa kolakwika. Imasiyana ndi yachindunji chifukwa imakhala ndi mawu okweza mawu asanamenyedwe. Ndiko kuti, ngati tikufuna kudumpha mzere watsopano, tiyenera kulemba !n m'malo mwa n.

Timapeza code yotsatira.

# chotsani mipata yonse kupatula mzere watsopano  

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

>>> sindikiza (regex.sub(' ', zolemba))  

100 INF Informatics

213 MAT Masamu  

156 ENG English

Kodi magulu amawu okhazikika ndi ati?

Mothandizidwa ndi magulu a mawu okhazikika, titha kupeza zinthu zomwe tikufuna mu mawonekedwe azinthu zosiyana, osati mzere umodzi. 

Tiyerekeze kuti tifunika kupeza nambala ya maphunziro, code ndi dzina osati mzere umodzi, koma ngati zinthu zosiyana. Kuti mumalize ntchitoyi, muyenera kulemba mizere yambiri yosafunikira. 

M'malo mwake, ntchitoyi imatha kukhala yosavuta kwambiri. Mutha kupanga template pazolemba zonse ndikungofotokoza zomwe muyenera kuzipeza m'mabulaketi.

Padzakhala mizere yochepa kwambiri. 

# pangani magulu azithunzi zamakalata ndikuchotsa

>>> 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')]

Lingaliro la "dyera" kufananiza

Malinga ndi muyezo, mawu okhazikika amakonzedwa kuti achotse kuchuluka kwa data yofananira. Ndipo ngakhale mukufunikira zochepa kwambiri.

Tiyeni tiwone chitsanzo cha HTML code komwe tiyenera kupeza tag.

>>> text = "Chitsanzo cha Dyera Kufananiza Nthawi Zonse"  

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

['Chitsanzo cha Mafananidwe Adyera Okhazikika']

M'malo motulutsa tag imodzi yokha, Python adapeza chingwe chonse. N’chifukwa chake amatchedwa aumbombo.

Ndipo choti muchite kuti mupeze chizindikiro chokha? Pankhaniyi, muyenera kugwiritsa ntchito ulesi kufananitsa. Kuti mutchule mawu oterowo, chizindikiro cha funso chimawonjezedwa kumapeto kwa chitsanzocho.

Mudzapeza code zotsatirazi ndi linanena bungwe womasulira.

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

[",]

Ngati pakufunika kuti mupeze zomwe zimachitika koyamba, ndiye kuti njirayo imagwiritsidwa ntchito fufuzani ().

fufuzaninso('', zolemba).gulu()  

"

Ndiye chizindikiro chotsegulira chokha chidzapezeka.

Ma templates Odziwika bwino

Nali tebulo lomwe lili ndi mawu omwe amagwiritsidwa ntchito kwambiri.

Zolemba za gawo la Re la Python 3 mu . Re module yamawu okhazikika

Kutsiliza

Tangoganizirani njira zofunika kwambiri zogwirira ntchito ndi mawu okhazikika. Mulimonse momwe zingakhalire, mwawona kufunika kwake. Ndipo apa sizikupanga kusiyana ngati kuli kofunikira kufotokoza zolemba zonse kapena zidutswa zake, kaya kuli kofunikira kusanthula positi pa malo ochezera a pa Intaneti kapena kusonkhanitsa deta kuti muyikonze pambuyo pake. Mawu okhazikika ndi othandiza pankhaniyi.

Iwo amakulolani kuchita ntchito monga:

  1. Kufotokoza mtundu wa data, monga imelo adilesi kapena nambala yafoni.
  2. Kutenga chingwe ndikuchigawa mu zingwe zing'onozing'ono zingapo.
  3. Chitani machitidwe osiyanasiyana ndi mawu, monga kusaka, kutulutsa zofunikira, kapena kusintha mbali zina za zilembo.

Mafotokozedwe okhazikika amakulolani kuti muzichita zinthu zopanda pake. Poyamba, kudziwa sayansi sikophweka. Koma pochita, chirichonse chiri chokhazikika, kotero ndikwanira kulingalira kamodzi, pambuyo pake chida ichi chingagwiritsidwe ntchito osati Python, komanso m'chinenero china chilichonse. Ngakhale Excel imagwiritsa ntchito mawu okhazikika kuti isinthe ma data. Choncho ndi tchimo kusagwiritsa ntchito chida ichi.

Siyani Mumakonda