⊗pyPmREHHy 47 of 129 menu

Het koppelteken binnen sets in Python regex

Het koppelteken - is ook een speciaal symbool binnen [ ] (maar buiten - niet). Als je het koppelteken zelf nodig hebt als symbool - plaats het dan waar het niet wordt gezien als een scheidingsteken van een groep.

Waarom dit belangrijk is: je kunt per ongeluk een groep symbolen maken. Bijvoorbeeld, zo - '[:-@]' - je denkt dat je een dubbele punt, een koppelteken en een apenstaartje selecteert, maar in werkelijkheid krijg je een groep symbolen tussen : en @. Deze groep bevat de volgende symbolen: ? < = > :

Waar komen ze vandaan? Uit de ASCII-tabel - de dubbele punt heeft een lager nummer dan het apenstaartje - en zo ontstaat de groep. Dat wil zeggen, alle groepen worden gevormd volgens de ASCII-tabel (je kunt dit gebruiken als je wilt).

Hoe dit op te lossen: plaats het koppelteken waar het zeker niet wordt gezien als een groepsymbool, bijvoorbeeld, aan het begin of aan het einde (dus na [ of voor ]).

Je kunt het koppelteken ook escapen - dan zal het zichzelf vertegenwoordigen, ongeacht de positie. Bijvoorbeeld, in plaats van [:-@] schrijf [:\-@] - en dan is er geen groep meer, maar zijn er drie symbolen - dubbele punt, koppelteken en apenstaartje @.

Voorbeeld

In het volgende voorbeeld is het zoekpatroon als volgt: cijfer 1, dan letter van 'a' tot 'z', dan cijfer 2:

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

Resultaat van de code-uitvoering:

'! 1-2 ! !'

Voorbeeld

Laten we nu het koppelteken escapen. Als resultaat is het zoekpatroon als volgt: cijfer 1, dan letter 'a', of koppelteken, of letter 'z', dan cijfer 2:

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

Resultaat van de code-uitvoering:

'! ! 1c2 !'

Voorbeeld

Je kunt het koppelteken eenvoudig verplaatsen zonder het te escapen:

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

Resultaat van de code-uitvoering:

'! ! 1c2 !'

Voorbeeld

In het volgende voorbeeld is het zoekpatroon als volgt: eerste symbool - kleine letters of koppelteken '-', dan twee letters 'x':

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

Resultaat van de code-uitvoering:

'! Axx ! @xx'

Voorbeeld

In het volgende voorbeeld is het zoekpatroon als volgt: eerste symbool - kleine, hoofdletters of koppelteken '-', dan twee letters 'x':

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

Resultaat van de code-uitvoering:

'! ! ! @xx'

Voorbeeld

Je kunt het koppelteken tussen twee groepen plaatsen - daar zal het zeker geen extra groep maken:

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

Resultaat van de code-uitvoering:

'! ! ! @xx'

Praktische taken

Gegeven een string:

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

Vind alle strings volgens het volgende patroon: letter 'x', hoofdletter of kleine letter of koppelteken, letter 'z'.

Gegeven een string:

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

Vind alle strings volgens het volgende patroon: letter 'x', dan of dollarteken, of koppelteken of plusteken, dan letter 'z'.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren