Dukumeenti loogu talagalay moduleka Re ee Python 3 gudaha . Dib u habaynta tibaaxaha caadiga ah

Tibaaxaha joogtada ahi waa qayb aad caan u ah ku dhawaad ​​luuqad kasta oo barnaamijeed. Waxay kaa caawinayaan inaad si dhakhso leh u hesho macluumaadka aad u baahan tahay. Gaar ahaan, waxaa loo isticmaalaa marka ay lagama maarmaan tahay in la farsameeyo qoraalka. Python waxa ay la socotaa module gaar ah sida caadiga ah. re, kaas oo mas'uul ka ah inuu ku shaqeeyo tibaaxo joogto ah.

Maanta waxaan si faahfaahsan uga hadli doonaa waxa ay tahay guud ahaan, sida loola shaqeeyo iyaga iyo sida moduleka re caawin doona.

Tibaaxaha joogtada ah: hordhac

Waa maxay isticmaalka tibaaxaha caadiga ah? Ku dhawaad ​​dhammaan Tusaale ahaan, kuwan:

  1. Codsiyada shabakadda ee u baahan ansixinta qoraalka. Tusaalaha caadiga ah waa macaamiisha boostada ee internetka.
  2. Mashruuc kasta oo kale oo la xidhiidha qoraallada, xog-ururinta iyo wixii la mid ah.

Ka hor inta aynaan bilaabin kala-soocidda syntax, waa inaan si faahfaahsan u fahamnaa mabaadi'da aasaasiga ah ee shaqeynta maktabadda re iyo guud ahaan, maxaa guud ahaan u wanaagsan. Waxaan sidoo kale ku siin doonaa tusaalooyin ka mid ah dhaqanka dhabta ah, halkaas oo aan ku tilmaami doono habka loo isticmaalo. Waxaad samayn kartaa qaab-dhismeedka noocan oo kale ah, oo kugu habboon inaad sameyso hawlo kala duwan oo kala duwan oo qoraal ah.

Waa maxay qaab-dhismeedka maktabadda Re?

Iyada, waxaad ka raadin kartaa macluumaad noocyo kala duwan ah, waxaad ka heli kartaa macluumaadka iyaga u dhigma, si aad u sameyso hawlaha kale ee la qabsiga. Iyo, dabcan, si loo farsameeyo xogtan.

Tusaale ahaan, qaado qaabkan soo socda: s+. Waxay ka dhigan tahay dabeecad kasta oo bannaan. Haddii aad ku darto calaamad dheeri ah, markaa tani waxay ka dhigan tahay in qaabka uu ku jiro in ka badan hal boos. Waxay xitaa la mid noqon kartaa jilayaasha tab ee lagu magacaabo t+.

Kahor intaadan isticmaalin, waxaad u baahan tahay inaad soo dejiso maktabadda Re. Taas ka dib, waxaan isticmaalnaa amar gaar ah si loo ururiyo template. Tan waxaa lagu sameeyaa laba tallaabo.

>>> soo dejinta re

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

Gaar ahaan, koodhkani waxa uu fuliyaa hawlgalka samaynta qaab-dhismeedka la isticmaali karo. tusaale ahaan, in la raadiyo meelo bannaan (hal ama ka badan).

Helitaanka xog gaar ah oo ka mid ah xargaha kala duwan iyadoo la adeegsanayo tibaaxo joogto ah

Ka soo qaad inaan hayno doorsoome ka kooban macluumaadka soo socda.

>>> qoraal = """100 INF Informatics

213 MAT xisaabta  

156 ENG Ingiriis»»

Waxay ka kooban tahay saddex koorso oo tababar ah. Mid kasta oo iyaga ka mid ah waxay ka kooban tahay saddex qaybood - lambar, kood iyo magac. Waxaan aragnaa in u dhexeeya erayadan ay kala duwan yihiin. Maxaa la sameeyaa si loo kala jebiyo xariiqan tirooyin iyo erayo kala duwan? Waxa jira laba hab oo lagu gaadho yoolkan:

  1. wac shaqo dib u kala qaybin.
  2. codsan shaqo Kala badh waayo, regex.

Halkan waxaa ah tusaale u adeegsiga syntax mid kasta oo ka mid ah hababka doorsoomayaashayada.

>>> dib u kala qaybin ('s+', qoraal)  

# ama

>>> regex.split(qoraal)

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

Guud ahaan, labada habba waa la isticmaali karaa. Laakiin runtii aad bay u fududahay in la isticmaalo odhaah joogto ah halkii aad isticmaali lahayd shaqada marar badan. dib u kala qaybin.

Helitaanka kulanno leh saddex hawlood

Aynu nidhaahno waxaan u baahanahay in aan tirooyin ka soo saarno xadhig. Maxaa loo baahan yahay in tan loo sameeyo?

re.findall()

Halkan waxaa ah kiis loo isticmaalo shaqada findall(), taas oo ay weheliso tibaaxaha caadiga ah, kuu ogolaanaya inaad ka soo saarto dhacdooyinka hal ama in ka badan oo ka mid ah doorsoomayaasha qoraalka.

>>> daabac (qoraal)  

100 INF Informatics

213 MAT xisaabta  

156 ENG Ingiriis

>>> regex_num = dib u ururin('d+')  

>>> regex_num.findall(qoraal)  

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

Si wada jir ah sumadda d, waxaanu isticmaalnay qaab-dhismeed tilmaamaya gabi ahaanba qiime kasta oo tiro ah oo ku yaal doorsoome ama qoraal. Oo mar haddii aan ku darnay hal + halkaas, tani waxay ka dhigan tahay in ugu yaraan hal lambar ay tahay inuu joogo. 

Waxa kale oo aad isticmaali kartaa calaamada * si aad u qeexdo in joogitaanka nambarka aan loo baahnayn si loo helo tabar.

Laakiin xaaladeena, tan iyo markii aan isticmaalnay +, waxaan la soo saarnay findall() 1 ama in ka badan oo koorasyo ​​qoraal ah oo dhijitaal ah loo qoondeeyay. Sidaa darteed, xaaladdeenna, tibaaxaha caadiga ah waxay u dhaqmaan sidii goobaha shaqada.

dib u raadin () vs dib u ciyaar()

Sida aad ka qiyaasi karto magaca hawlaha, marka hore waxay raadiyaan isku mid ah qoraalka. Su'aal: Waa maxay farqiga u dhexeeya findall? Ujeedadu waa in ay soo celiso shay gaar ah oo u dhigma qaabka, ee ma aha dhammaan natiijooyinka la helay oo dhan ee qaabka liiska, sida shaqadii hore.

Taa baddalkeeda, shaqada dib-u-habaynta ayaa sidaas oo kale qabta. Kaliya macnaha ereyga ayaa ka duwan. Qaabka waa in la dhigaa bilowga. 

Aan soo qaadanno tusaale taas muujinaya.

>>> # samee doorsoome qoraal ah

>>> text2 = «»» INF Informatics

213 MAT xisaabta 156 ""  

>>> # ururi regex oo raadi qaabab

>>> regex_num = dib u ururin('d+')  

>>> s = regex_num.search (text2)  

>>> daabac ('Tusmada koowaad:', s.start())  

>>> daabac  

>>> daabac (text2[s.start():s.dhamaadka()]) 

Tusmada koowaad: 17 

Tusmihii ugu dambeeyay: 20

213

Haddii aad rabto inaad hesho natiijo la mid ah si ka duwan, waxaad isticmaali kartaa shaqada koox().

Ku beddelashada qayb ka mid ah qoraalka maktabadda Re

Si aad u bedesho qoraalka, isticmaal shaqada re.sub(). Ka soo qaad in liiska koorasyadayadu wax yar isbeddeleen. Waxaan aragnaa in qiimo kasta oo dhijitaal ah ka dib aan leenahay tab. Hawsheenu waa in aan isku xidhno dhammaan taxanahan hal xariiq. Si tan loo sameeyo, waxaan u baahanahay inaan bedelno tibaaxaha s+ in la dhaafo 

Qoraalkii asalka ahaa wuxuu ahaa:

# samee doorsoome qoraal leh

>>> qoraal = """100 INF t Informatics

213 MAT t Xisaab  

156 ENG t English»»  

>>> daabac (qoraal)  

100 MACLUUMAADKA Sayniska kumbuyuutarka

213 MAT Mathematics  

156 ENG Ingiriis

Si loo sameeyo hawlgalka la doonayo, waxaan isticmaalnay khadadka soo socda ee code.

# hal ama ka badan ku beddel 1

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

>>> daabac(regex.sub('', qoraal))  

Natiijo ahaan, waxaan leenahay hal xariiq. 

101 COM Computers 205 MAT Mathematics 189 ENG Somali

Hadda ka fiirso dhibaato kale. Nama soo food saarto hawsha boosaska. Aad ayey muhiim noogu tahay in dhammaan magacyada koorsada ay ka bilowdaan khad cusub. Si taas loo sameeyo, odhaah kale ayaa la isticmaalaa oo ku daraysa khad cusub marka laga reebo. Waa maxay nooca hadalka?

Maktabadda Re waxay taageertaa sifo ay ka mid yihiin is-qabsiga taban. Waxa ay kaga duwan tahay tan tooska ah in ay ka kooban tahay dhibic qaylo-dhaan ka hor inta aan la jarin. Taasi waa, haddii aan u baahanahay inaan ka boodno jilaha khadka cusub, markaa waxaan u baahanahay inaan qorno !n halkii n.

Waxaan helnaa koodka soo socda.

# Ka saar dhammaan meelaha banaan marka laga reebo khad cusub  

>>> regex = dib u ururin('((?!n)s+)')  

>>> daabac(regex.sub('', qoraal))  

100 INF Informatics

213 MAT xisaabta  

156 ENG Ingiriis

Waa maxay kooxaha hadalka caadiga ah?

Iyada oo gacan laga helayo kooxaha tibaaxaha caadiga ah, waxaan ku heli karnaa walxaha la rabo ee qaabka walxaha kala duwan, oo aan ku jirin hal xariiq. 

Ka soo qaad in aan u baahanahay in aan helno nambarka koorsada, koodka iyo magaca aan ku jirin hal sadar, laakiin sida walxo kala duwan. Si aad hawsha u dhammaystirto, waxaad u baahan doontaa inaad qorto tiro badan oo khadadka kood ah oo aan loo baahnayn. 

Dhab ahaantii, hawsha si weyn ayaa loo fududayn karaa. Waxaad u ururin kartaa qaab-dhismeedka dhammaan gelitaanka oo kaliya qeex xogta aad u baahan tahay inaad ka hesho biraha.

Waxaa jiri doona tiro aad u yar oo xariiqyo ah. 

# samee kooxo koorso qoraal ah oo soo saar

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

>>> re.findall (koorsada_qaabka, qoraalka)  

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

Fikradda is-waafajinta " hunguri weyn "

Sida caadiga ah, tibaaxaha caadiga ah ayaa loo habeeyey si loo soo saaro tirada ugu badan ee xogta isbarbardhigga ah. Oo xataa haddii aad u baahan tahay wax ka yar.

Aynu eegno muunad HTML code ah halka aan uga baahanahay inaan ka helno sumadda.

>>> qoraalka = "Tusaalaha Isbarbardhigga Hadalka Joogtada ah ee damaca leh"  

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

['Tusaale ahaan Isbarbardhigga Hadalka Joogtada ah ee damaca leh']

Halkii laga soo saari lahaa hal calaamad, Python ayaa heshay xadhigga oo dhan. Taasi waa sababta loogu yeero hunguriga.

Oo maxaa la sameeyaa si loo helo calaamadda kaliya? Xaaladdan oo kale, waxaad u baahan tahay inaad isticmaasho isbarbardhigga caajiska ah. Si loo qeexo tibaaxahaas, calaamad su'aal ayaa lagu daraa dhamaadka qaabka.

Waxaad heli doontaa koodka soo socda iyo natiijada turjubaanka.

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

[”,]

Haddii loo baahan yahay in la helo oo kaliya dhacdadii ugu horeysay ee la kulmay, markaa habka ayaa loo isticmaalaa raadi ().

dib u raadis('', text).koox()  

"

Kadib kaliya sumadda furitaanka ayaa la heli doonaa.

Qaababka Muujinta caanka ah

Halkan waxaa ah shax ka kooban qaababka hadalka caadiga ah ee inta badan la isticmaalo.

Dukumeenti loogu talagalay moduleka Re ee Python 3 gudaha . Dib u habaynta tibaaxaha caadiga ah

Ugu Dambeyn

Waxaan tixgelinay kaliya hababka aasaasiga ah ee la shaqeynta tibaaxaha caadiga ah. Si kastaba ha ahaatee, waxaad aragtay sida ay muhiim u yihiin. Oo halkan wax farqi ah ma samaynayso haddii ay lagama maarmaan tahay in la kala saaro qoraalka oo dhan ama qaybtiisa gaarka ah, haddii ay lagama maarmaan tahay in la falanqeeyo qoraal ku soo baxay shabakad bulsho ama xog ururin si hadhow loo habeeyo. Tibaaxaha joogtada ahi waa caawiye la isku halayn karo oo arrintan ku saabsan.

Waxay kuu oggolaanayaan inaad qabato hawlo ay ka mid yihiin:

  1. Cadaynta qaabka xogta, sida ciwaanka iimaylka ama lambarka taleefanka.
  2. Helitaanka xadhig iyo u kala qaybinta dhawr xadhig oo yaryar.
  3. Ku samee hawlgallo kala duwan oo qoraal ah, sida raadinta, soo saarista macluumaadka lagama maarmaanka ah, ama beddelka qayb ka mid ah jilayaasha.

Tibaaxaha joogtada ahi waxay sidoo kale kuu oggolaanayaan inaad sameyso hawlgallo aan fududayn. Jaleecada hore, barashada cilmigan ma fududa. Laakiin ficil ahaan, wax walba waa la jaanqaadaya, markaa waa ku filan tahay in la ogaado hal mar, ka dib markii qalabkan loo isticmaali karo oo kaliya maaha Python, laakiin sidoo kale luuqad kasta oo kale oo barnaamij ah. Xataa Excel waxay isticmaashaa tibaaxo joogto ah si ay u habayso xogta. Markaa waa dembi inaadan isticmaalin qalabkan.

Leave a Reply