⊗pyPmRELAB 72 of 129 menu

Positiewe en negatiewe vooruitsig in Python gereelde uitdrukkings

Soms moet jy 'n taak van hierdie tipe oplos: vind die string 'aaa' en vervang dit met '!', maar slegs as na 'aaa' 'x' volg, terwyl 'x' self nie vervang word nie. As ons probeer om die taak 'reguit' op te los, sal ons nie slaag nie:

txt = 'aaax baaa' res = re.sub('aaax', '!', txt) print(res) # sal '! baaa' uitdruk, maar ons wou '!x baaa' hê

Vooruitsig

Om die taak op te los, is 'n manier nodig om te sê dat 'x' nie vervang moet word nie. Dit word gedoen met behulp van spesiale hakies (?= ), wat net kyk, maar nie met hulle saamneem nie.

Hierdie hakies word positiewe vooruitsig genoem. Positief - want 'x' (in ons geval) moet teenwoordig wees - slegs dan sal vervanging plaasvind.

Laat ons hierdie hakies toepas om ons taak op te los:

txt = 'aaax baaa' res = re.sub('aaa(?=x)', '!', txt) print(res) # sal '!x baaa' uitdruk

Daar is ook negatiewe vooruitsig - (?! ) - dit sê, teenoorgesteld, dat iets nie teenwoordig moet wees nie. In die volgende voorbeeld sal vervanging slegs plaasvind as na 'aaa' NIE 'x' volg nie:

txt = 'aaax aaab' res = re.sub('aaa(?!x)', '!', txt) print(res) # sal 'aaax !b' uitdruk

Agteruitsig

Op soortgelyke wyse is daar positiewe agteruitsig - (?<= ). In die volgende voorbeeld sal vervanging slegs plaasvind as voor 'aaa' 'x' staan:

txt = 'xaaa' res = re.sub('(?<=x)aaa', '!', txt) print(res) # sal 'x!' uitdruk

En daar is ook negatiewe agteruitsig - (?<! ). In die volgende voorbeeld sal vervanging slegs plaasvind as voor 'aaa' nie 'x' staan nie:

txt = 'baaa' res = re.sub('(?<!x)aaa', '!', txt) print(res) # sal 'b!' uitdruk

Praktiese take

Gegee 'n string wat funksienames bevat:

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

Kry 'n lys van funksienames uit die string.

Gegee 'n string met 'n etiket:

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

Kry 'n lys van die eienskapsname van hierdie etiket.

Gegee 'n string met veranderlikes:

txt = '$aaa $bbb $ccc xxxx'

Kry die substringe wat deur 'n dollarteken voorafgegaan word.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp