Takaddun bayanai don tsarin Re na Python 3 a cikin . Sake tsarin don maganganun yau da kullun

Kalmomi na yau da kullun sune sanannen bangare na kusan kowane yaren shirye-shirye. Suna taimaka muku da sauri samun damar bayanan da kuke buƙata. Musamman, ana amfani da su lokacin da ya zama dole don aiwatar da rubutu. Python ya zo da tsari na musamman ta tsohuwa. re, wanda ke da alhakin yin aiki tare da maganganu na yau da kullum.

Yau za mu yi magana daki-daki game da abin da yake a general, yadda za a yi aiki tare da su da kuma yadda module re zai taimaka.

Kalmomi na yau da kullun: gabatarwa

Menene amfanin maganganun yau da kullun? Kusan duka. Misali, wadannan:

  1. Aikace-aikacen yanar gizo waɗanda ke buƙatar tabbatar da rubutu. Misali na yau da kullun shine abokan cinikin saƙo na kan layi.
  2. Duk wasu ayyukan da ke da alaƙa da rubutu, bayanan bayanai da sauransu.

Kafin mu fara fassarori tsarin, ya kamata mu fahimci dalla-dalla ainihin ƙa'idodin aikin ɗakin karatu re kuma a gaba ɗaya, abin da yake gabaɗaya mai kyau game da shi. Za mu kuma ba da misalai daga aiki na gaske, inda za mu bayyana tsarin amfani da su. Kuna iya ƙirƙirar irin wannan samfuri, wanda ya dace da ku don aiwatar da ayyuka iri-iri tare da rubutu.

Menene samfuri a cikin Laburaren Re?

Tare da shi, zaku iya nemo bayanai iri-iri, samun bayanan da suka dace da su, don sa wasu ayyuka su daidaita. Kuma, ba shakka, don aiwatar da wannan bayanan.

Misali, ɗauki samfuri mai zuwa: s+. Yana nufin kowane hali na sarari. Idan kun ƙara alamar ƙari gare shi, to wannan yana nufin cewa ƙirar ta ƙunshi sarari fiye da ɗaya. Yana iya ma daidaita haruffan shafin da ake kira da su t+.

Kafin amfani da su, kuna buƙatar shigo da ɗakin karatu Re. Bayan haka, muna amfani da umarni na musamman don haɗa samfuri. Ana yin wannan ta matakai biyu.

>>> shigo da re

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

Musamman, wannan lambar tana aiwatar da aikin haɗa samfuri wanda za'a iya amfani dashi. misali, don nemo sarari (daya ko fiye).

Samun keɓaɓɓen bayani daga igiyoyi daban-daban ta amfani da maganganu na yau da kullun

A ce muna da mabambantan da ke ɗauke da waɗannan bayanan.

>>> rubutu = """100 INF Informatics

213 MAT lissafi  

156 ENG Turanci»»

Ya ƙunshi darussa horo guda uku. Kowannensu ya ƙunshi sassa uku - lamba, lamba da suna. Mun ga cewa tazara tsakanin waɗannan kalmomi ya bambanta. Me za a yi domin karya wannan layi zuwa lambobi da kalmomi daban? Akwai hanyoyi guda biyu don cimma wannan manufa:

  1. kira aiki sake raba.
  2. shafi aiki Rabu domin regex.

Anan akwai misalin yin amfani da tsarin tsarin kowane ɗayan hanyoyin don canjin mu.

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

# ko

>>> regex.split(rubutu)

Fitowa: ['100', 'INF', 'Kimiyyar Kwamfuta', '213', 'MAT', 'Math', '156', 'ENG', 'Turanci']

Gabaɗaya, ana iya amfani da hanyoyin biyu. Amma a zahiri yana da sauƙin amfani da magana ta yau da kullun maimakon amfani da aikin sau da yawa. sake raba.

Neman matches tare da ayyuka uku

Bari mu ce muna buƙatar cire lambobi kawai daga kirtani. Me ya kamata a yi don wannan?

re.findall()

Anan akwai yanayin amfani don aikin findall(), wanda, tare da maganganun yau da kullun, yana ba ku damar cire abubuwan da suka faru na lambobi ɗaya ko fiye daga madaidaicin rubutu.

>>> bugu (rubutu)  

100 INF Informatics

213 MAT lissafi  

156 ENG Turanci

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

>>> regex_num.findall(rubutu)  

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

Tare da alamar d, mun yi amfani da samfuri wanda ke nuna kwata-kwata kowane ƙimar lambobi dake cikin maɓalli ko rubutu. Kuma tunda mun ƙara ɗaya + a wurin, wannan yana nufin cewa dole ne aƙalla lamba ɗaya ta kasance. 

Hakanan zaka iya amfani da alamar * don tantance cewa ba'a buƙatar kasancewar lambobi don samun wasa.

Amma a yanayinmu, tunda mun yi amfani da +, mun ciro da findall() 1 ko fiye na dijital zane na darussa daga rubutu. Don haka, a cikin yanayinmu, maganganun yau da kullun suna aiki azaman saiti don aikin.

bincike () vs sake daidaitawa ()

Kamar yadda zaku iya tsammani daga sunan ayyukan, na farko yana neman daidaitawa a cikin rubutun. Tambaya: Menene bambanci tsakanin samuall? Abin nufi shi ne ya dawo da wani takamaiman abu wanda ya yi daidai da tsarin, kuma ba duka jerin sakamakon da aka samu a cikin nau'in jeri ba, kamar aikin da ya gabata.

Bi da bi, aikin re.match yana yin haka. Sai dai tsarin magana ya bambanta. Dole ne a sanya samfurin a farkon. 

Bari mu ɗauki misali da ya nuna hakan.

>>> # ƙirƙirar mai canzawa tare da rubutu

>>> rubutu2 = «»» INF Informatics

213 MAT Mathematics 156"  

>>> # tattara regex da neman alamu

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

>>> s = regex_num.search (rubutu2)  

>>> buga ('Fihirisar farko:', s.start())  

>>> buga ('Fihirisar ƙarshe:', s.end())  

>>> bugawa (rubutu2[s.start():s.karshen ()]) 

Fihirisar farko: 17 

Fihirisar ƙarshe: 20

213

Idan kuna son samun sakamako iri ɗaya ta wata hanya dabam, zaku iya amfani da aikin kungiya().

Maye gurbin sashe na rubutu tare da Re library

Don maye gurbin rubutu, yi amfani da aikin re.sub(). A ce jerin darussanmu sun ɗan canza kaɗan. Mun ga cewa bayan kowace ƙimar dijital muna da shafin. Ayyukanmu shine haɗa duk wannan jerin zuwa layi ɗaya. Don yin wannan, muna buƙatar maye gurbin furcin s+ ya wuce 

Asalin rubutun shine:

# ƙirƙirar m tare da rubutu

>>> rubutu = """100 INF t Informatics

213 MAT t Math  

156 ENG t Turanci»»  

>>> bugu (rubutu)  

100 BAYANI Ilimin komputa

213 MAT lissafi  

156 ENG Turanci

Don yin aikin da ake so, mun yi amfani da layukan lamba masu zuwa.

# maye gurbin wuri ɗaya ko fiye da 1

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

>>> buga (regex.sub('', rubutu))  

A sakamakon haka, muna da layi daya. 

101 COM Computers 205 MAT Mathematics 189 ENG Hausa

Yanzu la'akari da wata matsala. Ba mu fuskanci aikin sanya wurare ba. Yana da mahimmanci a gare mu cewa duk sunayen kwas sun fara akan sabon layi. Don yin wannan, ana amfani da wani furci wanda ke ƙara sabon layi zuwa banda. Wannan wane irin magana ne?

library Re yana goyan bayan siffa kamar rashin dacewa. Ya bambanta da na kai tsaye domin yana ɗauke da abin mamaki kafin yankewa. Wato idan muna buƙatar tsallake sabon layi, to muna buƙatar rubuta !n maimakon n.

Muna samun lambar mai zuwa.

# cire duk sarari banda sabon layi  

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

>>> buga (regex.sub('', rubutu))  

100 INF Informatics

213 MAT lissafi  

156 ENG Turanci

Menene kungiyoyin magana akai-akai?

Tare da taimakon ƙungiyoyi na maganganu na yau da kullum, za mu iya samun abubuwan da ake so a cikin nau'i na abubuwa daban-daban, kuma ba a cikin layi ɗaya ba. 

A ce muna buƙatar samun lambar kwas, lamba da suna ba a cikin layi ɗaya ba, amma a matsayin abubuwa daban. Don kammala aikin, kuna buƙatar rubuta adadi mai yawa na layukan lambobin da ba dole ba. 

A gaskiya ma, ana iya sauƙaƙe aikin sosai. Kuna iya haɗa samfuri don duk shigarwar kuma kawai saka bayanan da kuke buƙatar samu daga maƙallan.

Za a sami ƙananan layukan. 

# ƙirƙiri rukunoni na kwas ɗin rubutu kuma cire su

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

>>> re.findall(course_pattern, text)  

[('100', 'INF',' Kimiyyar Kwamfuta'), ('213', 'MAT', 'Math'), ('156', 'ENG', 'Turanci')]

Ma'anar "m" matching

Ta misali, ana tsara maganganun yau da kullun don fitar da matsakaicin adadin bayanan da suka dace. Kuma koda kuna buƙatar ƙasa kaɗan.

Bari mu kalli samfurin HTML code inda muke buƙatar samun alamar.

>>> rubutu = "Misalin Haɗawar Magana ta Kullum"  

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

['Misali na Haɗin Magani na yau da kullun']

Maimakon cire tag guda ɗaya kawai, Python ya sami dukan kirtani. Shi ya sa ake ce masa kwadayi.

Kuma abin da za a yi don samun tag kawai? A wannan yanayin, kuna buƙatar amfani da matching lazy. Don tantance irin wannan magana, ana ƙara alamar tambaya zuwa ƙarshen tsarin.

Za ku sami lambar mai zuwa da fitarwa na mai fassarar.

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

[",]

Idan ana buƙatar samun abin da ya faru na farko kawai, to ana amfani da hanyar bincike ().

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

"

Sa'an nan kawai za a sami alamar budewa.

Shahararrun Samfuran Magana

Anan akwai tebur mai ɗauke da tsarin magana na yau da kullun da aka fi amfani dashi.

Takaddun bayanai don tsarin Re na Python 3 a cikin . Sake tsarin don maganganun yau da kullun

Kammalawa

Mun yi la'akari kawai mafi mahimmanci hanyoyin don aiki tare da maganganu na yau da kullum. A kowane hali, kun ga yadda suke da mahimmanci. Kuma a nan babu wani bambanci ko ya wajaba a tantance gabaɗayan rubutun ko ɓangarorinsa guda ɗaya, ko ya wajaba a bincika wani rubutu a dandalin sada zumunta ko tattara bayanai don aiwatar da shi daga baya. Kalmomi na yau da kullun mataimaki ne abin dogaro a cikin wannan al'amari.

Suna ba ku damar yin ayyuka kamar:

  1. Ƙayyadaddun tsarin bayanan, kamar adireshin imel ko lambar waya.
  2. Samun kirtani da raba shi cikin ƙananan igiyoyi da yawa.
  3. Yi ayyuka daban-daban tare da rubutu, kamar bincike, cire mahimman bayanai, ko maye gurbin ɓangaren haruffa.

Kalmomi na yau da kullun kuma suna ba ku damar yin ayyuka marasa mahimmanci. A kallo na farko, ƙwarewar wannan kimiyya ba ta da sauƙi. Amma a aikace, komai yana daidaitawa, don haka ya isa a gano shi sau ɗaya, bayan haka ana iya amfani da wannan kayan aiki ba kawai a cikin Python ba, har ma da kowane yaren shirye-shirye. Ko da Excel yana amfani da maganganun yau da kullun don sarrafa sarrafa bayanai. Don haka zunubi ne rashin amfani da wannan kayan aiki.

Leave a Reply