Iwe fun module Tun fun Python 3 ni. Tun module fun deede expressions

Awọn ikosile deede jẹ paati olokiki pupọ ti o fẹrẹẹ jẹ ede siseto eyikeyi. Wọn ṣe iranlọwọ fun ọ ni kiakia wọle si alaye ti o nilo. Ni pato, wọn lo nigbati o jẹ dandan lati ṣiṣẹ ọrọ. Python wa pẹlu module pataki nipasẹ aiyipada. re, eyi ti o jẹ iduro fun ṣiṣẹ pẹlu awọn ikosile deede.

Loni a yoo sọrọ ni apejuwe awọn nipa ohun ti o jẹ ni apapọ, bi o si ṣiṣẹ pẹlu wọn ati bi awọn module re yoo ṣe iranlọwọ.

Awọn ikosile deede: ifihan

Kini awọn lilo ti awọn ikosile deede? Fere gbogbo. Fun apẹẹrẹ, awọn wọnyi:

  1. Awọn ohun elo ayelujara ti o nilo afọwọsi ọrọ. Apẹẹrẹ aṣoju jẹ awọn alabara meeli ori ayelujara.
  2. Eyikeyi miiran ise agbese jẹmọ si awọn ọrọ, infomesonu ati be be lo.

Ṣaaju ki a to bẹrẹ sisọ sintasi naa, o yẹ ki a loye ni awọn alaye diẹ sii awọn ilana ipilẹ ti iṣẹ ṣiṣe ti ile-ikawe naa re ati ni gbogbogbo, kini o dara ni gbogbogbo nipa rẹ. A yoo tun fun awọn apẹẹrẹ lati iṣe gidi, nibiti a yoo ṣe apejuwe ilana ti lilo wọn. O le ṣẹda iru awoṣe kan, o dara fun ọ lati ṣe ọpọlọpọ awọn iṣẹ ṣiṣe pẹlu ọrọ.

Kini awoṣe ni ile-ikawe Tun?

Pẹlu rẹ, o le wa alaye ti awọn oriṣiriṣi oriṣiriṣi, gba alaye ti o baamu si wọn, lati jẹ ki awọn iṣẹ miiran ṣe adaṣe diẹ sii. Ati, dajudaju, lati ṣe ilana data yii.

Fun apẹẹrẹ, mu awoṣe wọnyi: s+. O tumọ si ohun kikọ aaye eyikeyi. Ti o ba ṣafikun ami afikun si rẹ, lẹhinna eyi tumọ si pe apẹrẹ pẹlu aaye diẹ sii ju ọkan lọ. O le paapaa baramu awọn kikọ taabu ti a pe pẹlu t+.

Ṣaaju lilo wọn, o nilo lati gbe ile-ikawe wọle Re. Lẹhin iyẹn, a lo aṣẹ pataki kan lati ṣajọ awoṣe naa. Eyi ni a ṣe ni awọn igbesẹ meji.

>>> gbe wọle re

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

Ni pataki, koodu yii n ṣe iṣẹ ṣiṣe ti iṣakojọpọ awoṣe ti o le ṣee lo. fun apẹẹrẹ, lati wa awọn alafo (ọkan tabi diẹ ẹ sii).

Ngba alaye lọtọ lati awọn oriṣiriṣi awọn okun lilo awọn ikosile deede

Ṣebi a ni oniyipada ti o ni alaye atẹle naa.

>>> ọrọ = """100 INF Informatics

213 MAthimatiki  

156 ENG English»»

O ni awọn iṣẹ ikẹkọ mẹta. Ọkọọkan wọn ni awọn ẹya mẹta - nọmba, koodu ati orukọ. A rii pe aarin laarin awọn ọrọ wọnyi yatọ. Kini lati ṣe lati fọ laini yii si awọn nọmba ati awọn ọrọ lọtọ? Awọn ọna meji lo wa lati ṣaṣeyọri ibi-afẹde yii:

  1. pe iṣẹ kan tun.pipin.
  2. waye iṣẹ Pin fun regex.

Eyi jẹ apẹẹrẹ ti lilo sintasi ti awọn ọna kọọkan fun oniyipada wa.

>>> tun. pipin ('s+', ọrọ)  

# tabi

>>> regex.split(ọrọ)

Ijade: ['100', 'INF', 'Computer Science', '213', 'MAT', 'Math', '156', 'ENG', 'Gẹẹsi']

Ni gbogbogbo, awọn ọna mejeeji le ṣee lo. Ṣugbọn o rọrun pupọ lati lo ikosile deede dipo lilo iṣẹ naa ni igba pupọ. tun.pipin.

Wiwa awọn ere-kere pẹlu awọn iṣẹ mẹta

Jẹ ki a sọ pe a nilo lati jade awọn nọmba nikan lati okun kan. Kini o nilo lati ṣe fun eyi?

tun.findall()

Eyi ni ọran lilo fun iṣẹ naa findall(), eyiti, pẹlu awọn ikosile deede, ngbanilaaye lati yọ awọn iṣẹlẹ ti ọkan tabi diẹ ẹ sii awọn nọmba lati oniyipada ọrọ.

>>> titẹ (ọrọ)  

100 INF Informatics

213 MAthimatiki  

156 ENG Gẹẹsi

>>> regex_num = atunkopọ ('d+')  

>>> regex_num.findall(ọrọ)  

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

Paapọ pẹlu aami d, a lo awoṣe ti o tọkasi Egba eyikeyi iye nomba ti o wa ni oniyipada tabi ọrọ. Ati pe niwọn igba ti a ṣafikun ọkan + nibẹ, eyi tumọ si pe o kere ju nọmba kan gbọdọ wa. 

O tun le lo ami * lati pato pe wiwa nọmba kan ko nilo fun ibaamu kan lati rii.

Ṣùgbọ́n nínú ọ̀ràn tiwa, níwọ̀n bí a ti lo +, a fi ń yọ jáde pẹ̀lú findall() 1 tabi diẹ sii awọn apẹrẹ oni nọmba ti awọn iṣẹ ikẹkọ lati ọrọ naa. Bayi, ninu ọran wa, awọn ikosile deede ṣiṣẹ bi awọn eto fun iṣẹ naa.

àtúnṣe () vs baramu()

Bi o ti le gboju le won lati awọn orukọ ti awọn iṣẹ, akọkọ wiwa fun a baramu ninu awọn ọrọ. Ibeere: Kini iyato laarin Findall? Ojuami ni pe o pada ohun kan pato ti o baamu ilana naa, kii ṣe gbogbo ọkọọkan awọn abajade ti a rii ni irisi atokọ kan, bii iṣẹ iṣaaju.

Ni ọna, iṣẹ atunṣe tun ṣe kanna. Nikan ni sintasi ti o yatọ si. Awọn awoṣe gbọdọ wa ni gbe ni ibẹrẹ. 

Jẹ́ ká gbé àpẹẹrẹ kan tó fi èyí hàn.

>>> # ṣẹda oniyipada pẹlu ọrọ

>>> text2 = «»» INF Informatics

213 Mathematiki MAT 156 ""  

>>> # ṣajọ regex ki o wa awọn ilana

>>> regex_num = atunkopọ ('d+')  

>>> s = regex_num.search(ọrọ2)  

>>> tẹjade ('Atọka akọkọ:', s.start())  

>>> tẹjade ('Atọka ikẹhin:', s.end())  

>>> titẹ (text2[s.start():s.pari ()]) 

Atọka akọkọ: 17 

Atọka ti o kẹhin: 20

213

Ti o ba fẹ gba abajade kanna ni ọna ti o yatọ, o le lo iṣẹ naa ẹgbẹ().

Rirọpo ara ọrọ pẹlu Re ìkàwé

Lati rọpo ọrọ, lo iṣẹ naa re.sub(). Ṣebi atokọ ti awọn iṣẹ ikẹkọ ti yipada diẹ. A rii pe lẹhin iye oni-nọmba kọọkan a ni taabu kan. Iṣẹ-ṣiṣe wa ni lati darapọ gbogbo ọkọọkan yii sinu laini kan. Lati ṣe eyi, a nilo lati rọpo ikosile s+ lati ṣe 

Ọrọ atilẹba jẹ:

# ṣẹda oniyipada pẹlu ọrọ

>>> ọrọ = """100 INF t Informatics

213 MAT t Math  

156 ENG t English»»  

>>> titẹ (ọrọ)  

100 ALAYE Imo komputa sayensi

213 MAT Mathematics  

156 ANG Èdè Gẹẹsì

Lati ṣe iṣẹ ti o fẹ, a lo awọn ila ti koodu atẹle.

# rọpo ọkan tabi diẹ sii awọn alafo pẹlu 1

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

>>> titẹ (regex.sub('', ọrọ))  

Bi abajade, a ni ila kan. 

101 COM Computers 205 MAT Mathematics 189 ENG English

Todin, lẹnnupọndo nuhahun devo ji. A ko dojuko pẹlu iṣẹ-ṣiṣe ti fifi awọn aaye. O ṣe pataki pupọ fun wa pe gbogbo awọn orukọ dajudaju bẹrẹ lori laini tuntun kan. Lati ṣe eyi, a lo ikosile miiran ti o ṣe afikun laini tuntun si iyasọtọ. Iru ikosile wo ni eyi?

Ìkàwé Re ṣe atilẹyin ẹya kan gẹgẹbi ibaramu odi. O yato si ti o taara ni pe o ni aaye igbejade kan ṣaaju idinku. Iyẹn ni, ti a ba nilo lati foju ohun kikọ tuntun, lẹhinna a nilo lati kọ !n dipo n.

A gba koodu atẹle.

# yọ gbogbo awọn aaye kuro ayafi laini tuntun  

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

>>> titẹ (regex.sub('', ọrọ))  

100 INF Informatics

213 MAthimatiki  

156 ENG Gẹẹsi

Kini awọn ẹgbẹ ikosile deede?

Pẹlu iranlọwọ ti awọn ẹgbẹ ti awọn ikosile deede, a le gba awọn ohun ti o fẹ ni irisi awọn eroja ọtọtọ, kii ṣe ni ila kan. 

Ṣebi a nilo lati gba nọmba dajudaju, koodu ati orukọ kii ṣe ni laini kan, ṣugbọn bi awọn eroja lọtọ. Lati pari iṣẹ naa, iwọ yoo nilo lati kọ nọmba nla ti awọn laini koodu ti ko wulo. 

Ni otitọ, iṣẹ naa le jẹ irọrun pupọ. O le ṣajọ awoṣe fun gbogbo awọn titẹ sii ati pe o kan pato data ti o nilo lati gba lati awọn biraketi.

Nibẹ ni yio je kan gan kekere nọmba ti ila. 

# ṣẹda awọn ẹgbẹ dajudaju awọn awoṣe ọrọ ki o jade wọn

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

>>> re.findall(pattern_course, text)  

[('100', 'INF', 'Computer Science'), ('213', 'MAT', 'Math'), ('156', 'ENG', 'Gẹẹsi')]

Awọn Erongba ti "greedy" tuntun

Nipa boṣewa, awọn ikosile deede jẹ eto lati yọkuro iye ti o pọju ti data ibaramu. Ati paapa ti o ba nilo Elo kere.

Jẹ ká wo a ayẹwo HTML koodu ibi ti a nilo lati gba awọn tag.

>>> ọrọ = "Apeere ti Ibadọgba Itumọ Oniwọra"  

>>> re.findall('', ọrọ)  

['Apeere ti Ibadọgba Itumọ Oniwọra']

Dipo yiyo aami kan kan, Python ni gbogbo okun naa. Ìdí nìyẹn tí wọ́n fi ń pè é ní oníwọra.

Ati kini lati ṣe lati gba aami nikan? Ni ọran yii, o nilo lati lo ibaramu ọlẹ. Lati pato iru ikosile bẹ, aami ibeere ti wa ni afikun si opin apẹrẹ naa.

Iwọ yoo gba koodu atẹle ati abajade ti onitumọ.

>>> re.findall('', ọrọ)  

[","]

Ti o ba nilo lati gba iṣẹlẹ akọkọ akọkọ, lẹhinna a lo ọna naa wa ().

tun.search('', text).ẹgbẹ()  

"

Lẹhinna aami ṣiṣi nikan ni yoo rii.

Gbajumo ikosile Awọn awoṣe

Eyi ni tabili ti o ni awọn ilana ikosile deede ti a lo julọ ninu.

Iwe fun module Tun fun Python 3 ni. Tun module fun deede expressions

ipari

A ti ṣe akiyesi nikan awọn ọna ipilẹ julọ fun ṣiṣẹ pẹlu awọn ikosile deede. Ni eyikeyi idiyele, o ti rii bi wọn ṣe ṣe pataki to. Ati nihin ko ṣe iyatọ boya o jẹ dandan lati ṣe itupalẹ gbogbo ọrọ naa tabi awọn ajẹkù kọọkan, boya o jẹ dandan lati ṣe itupalẹ ifiweranṣẹ kan lori nẹtiwọọki awujọ tabi gba data lati le ṣe ilana rẹ nigbamii. Awọn ikosile deede jẹ oluranlọwọ ti o gbẹkẹle ni ọran yii.

Wọn gba ọ laaye lati ṣe awọn iṣẹ ṣiṣe bii:

  1. Pato ọna kika data naa, gẹgẹbi adirẹsi imeeli tabi nọmba foonu.
  2. Gbigba okun kan ati pipin si awọn okun kekere pupọ.
  3. Ṣe awọn iṣẹ oriṣiriṣi pẹlu ọrọ, gẹgẹbi wiwa, yiyo alaye pataki, tabi rirọpo apakan awọn ohun kikọ.

Awọn ikosile deede tun gba ọ laaye lati ṣe awọn iṣẹ ṣiṣe ti kii ṣe pataki. Ni wiwo akọkọ, iṣakoso imọ-jinlẹ yii ko rọrun. Ṣugbọn ni iṣe, ohun gbogbo ti wa ni iwọntunwọnsi, nitorinaa o to lati ṣawari rẹ lẹẹkan, lẹhin eyi ọpa yii le ṣee lo kii ṣe ni Python nikan, ṣugbọn tun ni ede siseto miiran. Paapaa Excel nlo awọn ikosile deede lati ṣe adaṣe adaṣe data. Nitorina o jẹ ẹṣẹ lati ma lo ọpa yii.

Fi a Reply