⊗pyPmRELAB 72 of 129 menu

Shikimi Pozitiv dhe Negativ në Shprehjet e Rregullta të Python

Ndonjëherë duhet të zgjidhet një detyrë e këtij lloji: gjeni vargun 'aaa' dhe zëvendësojeni atë me '!', por vetëm nëse pas 'aaa' ndodhet 'x', ndërsa vetë 'x' nuk zëvendësohet. Nëse përpiqemi të zgjidhim detyrën 'drejt e përpara', nuk do të dalë mirë:

txt = 'aaax baaa' res = re.sub('aaax', '!', txt) print(res) # do të shfaqë '! baaa', por ne donim '!x baaa'

Shikimi Përpara

Për të zgjidhur detyrën nevojitet një mënyrë për të thënë që 'x' nuk duhet të zëvendësohet. Kjo bëhet duke përdorur kllapat speciale (?= ), të cilat thjesht shikojnë, por nuk e marrin me vete.

Këto kllapa quhen shikim pozitiv përpara. Pozitiv - sepse 'x' (në rastin tonë) duhet të jetë i pranishëm - vetëm atëherë do të ndodhë zëvendësimi.

Le t'i përdorim këto kllapa për të zgjidhur detyrën tonë:

txt = 'aaax baaa' res = re.sub('aaa(?=x)', '!', txt) print(res) # do të shfaqë '!x aaab

Ekziston edhe shikim negativ përpara - (?! ) - ai, përkundrazi, thotë që diçka nuk duhet të jetë e pranishme. Në shembullin vijues, zëvendësimi do të ndodhë vetëm nëse pas 'aaa' nuk ndodhet 'x':

txt = 'aaax aaab' res = re.sub('aaa(?!x)', '!', txt) print(res) # do të shfaqë 'aaax !b'

Shikimi Prapa

Në mënyrë të ngjashme ekziston shikim pozitiv prapa - (?<= ). Në shembullin vijues zëvendësimi do të ndodhë vetëm nëse para 'aaa' ndodhet 'x':

txt = 'xaaa' res = re.sub('(?<=x)aaa', '!', txt) print(res) # do të shfaqë 'x!'

Ekziston gjithashtu shikim negativ prapa - (?<! ). Në shembullin vijues zëvendësimi do të ndodhë vetëm nëse para 'aaa' nuk ndodhet 'x':

txt = 'baaa' res = re.sub('(?<!x)aaa', '!', txt) print(res) # do të shfaqë 'b!'

Detyra Praktike

Është dhënë një varg që përmban emra funksionesh:

txt = 'func1() func2() func3()'

Merrni një varg (array) me emrat e funksioneve nga vargu.

Është dhënë një varg me një tag:

txt = '<a href="" class="eee" id="zzz">'

Merrni një varg (array) me emrat e atributeve të këtij tagu.

Është dhënë një varg me variabla:

txt = '$aaa $bbb $ccc xxxx'

Merrni nënvargjet, para të cilave ndodhet shenja e dollarit.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo