⊗pyPmREHHy 47 of 129 menu

A kötőjel a Python reguláris kifejezéseinek halmazaiban

A kötőjel - szintén speciális karakter a [ ] belsejében (kívül azonban - nem). Ha magára a kötőjelre van szüksége karakterként - akkor helyezze oda, ahol nem fogják csoportelválasztóként értelmezni.

Miért fontos ez: létrehozhat egy karaktercsoportot, anélkül, hogy észrevenné. Például így - '[:-@]' - Ön azt hiszi, hogy kettőspontot, kötőjelet és kukacot választ ki, de valójában a karakterek csoportja jön létre a : és a @ között. Ebbe a csoportba a következő karakterek tartoznak: ? < = > :

Honnan származnak? Az ASCII táblából - a kettőspontnak kisebb a sorszáma, mint a kukacnak - és így jön létre egy csoport. Vagyis minden csoport az ASCII tábla szerint jön létre (szükség esetén ezt ki lehet használni).

Hogyan kezeljük ezt: helyezze a kötőjel karaktert oda, ahol biztosan nem fogják csoportkarakterként értelmezni, például az elején vagy a végén (vagyis a [ után vagy a ] elött).

A kötőjelet escape-elni is lehet - ekkor önmagát fogja jelenteni, függetlenül a helyzetétől. Például a [:-@] helyett írja a [:\-@] - és már nem lesz csoport, hanem három karakter lesz - kettőspont, kötőjel és kukac @.

Példa

A következő példában a keresési minta a következő: 1 számjegy, majd 'a'-tól 'z'-ig betű, majd 2 számjegy:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a-z]2', '!', txt) print(res)

A kód végrehajtásának eredménye:

'! 1-2 ! !'

Példa

Most escape-eljük a kötőjelet. Ennek eredményeként a keresési minta a következő: 1 számjegy, majd 'a' betű, vagy kötőjel, vagy 'z' betű, majd 2 számjegy:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a\-z]2', '!', txt) print(res)

A kód végrehajtásának eredménye:

'! ! 1c2 !'

Példa

Egyszerűen áthelyezhetjük a kötőjelet anélkül, hogy escape-elnénk:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[az-]2', '!', txt) print(res)

A kód végrehajtásának eredménye:

'! ! 1c2 !'

Példa

A következő példában a keresési minta a következő: az első karakter kisbetűk vagy kötőjel '-', majd két 'x' betű:

txt = 'axx Axx -xx @xx' res = re.sub('[a-z-]xx', '!', txt) print(res)

A kód végrehajtásának eredménye:

'! Axx ! @xx'

Példa

A következő példában a keresési minta a következő: az első karakter kis- vagy nagybetűk vagy kötőjel '-', majd két 'x' betű:

txt = 'axx Axx -xx @xx' res = re.sub('[a-zA-Z-]xx', '!', txt) print(res)

A kód végrehajtásának eredménye:

'! ! ! @xx'

Példa

A kötőjelet két csoport közé is helyezhetjük - ott biztosan nem fog még egy csoportot létrehozni:

txt = 'axx 9xx -xx @xx' res = re.sub('[a-z-0-9]xx', '!', txt) print(res)

A kód végrehajtásának eredménye:

'! ! ! @xx'

Gyakorlati feladatok

Adott egy sztring:

txt = 'xaz xBz xcz x-z x@z'

Keresse meg az összes sztringet a következő minta szerint: 'x' betű, nagy- vagy kisbetű vagy kötőjel, 'z' betű.

Adott egy sztring:

txt = 'xaz x$z x-z xcz x+z x%z x*z'

Keresse meg az összes sztringet a következő minta szerint: 'x' betű, majd vagy dollár, vagy kötőjel vagy plusz, majd 'z' betű.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás