⊗pyPmREChS 40 of 129 menu

Tegnsæt i regulære udtryk i Python

Tegngrupperne \d og \w er ikke særlig fleksible. Selv en så simpel opgave som at finde alle bogstaver, men ikke tal - kan ikke løses af dem. Til sådanne opgaver skal man bruge kantede parenteser, der repræsenterer en 'eller'-operation.

Kantede parenteser erstatter et enkelt tegn, ethvert af de tegn, der er angivet indeni. For eksempel, sådan her: x[abc]x - siger vi, at der skal stå bogstavet x i enderne, og indeni - et tegn: enten 'a', eller 'b', eller 'c'.

Efter kantede parenteser kan man skrive gentagelsesoperatorer. For eksempel, sådan her: x[abc]+x - siger vi, at indenfor x'erne kan der være et hvilket som helst antal tegn 'a', 'b' og 'c' - i enhver kombination.

Man kan ikke kun opremse tegn, men også oprette tegn grupper ved at skrive mellem to tegn en bindestreg. For eksempel, sådan her: [a-d] - får vi alle tegn fra 'a' til 'd'.

Lad os se på eksempler.

Eksempel

I dette eksempel ser søgemønsteret sådan ud: mellem x'er ethvert bogstav fra 'a' til 'z':

<+Python+> txt = 'xax xbx xcx x@x' res = re.sub('x[a-z]x', '!', txt) print(res) <-python->

Resultatet af kodeudførelsen:

'! ! ! x@x'

Eksempel

I dette eksempel ser søgemønsteret sådan ud: mellem x'er ethvert bogstav fra 'a' til 'k':

txt = 'xax xbx xmx x@x' res = re.sub('x[a-k]x', '!', txt) print(res)

Resultatet af kodeudførelsen:

'! ! xmx x@x'

Eksempel

I dette eksempel ser søgemønsteret sådan ud: mellem x'er ethvert bogstav fra 'A' til 'Z':

txt = 'xax xBx xcx x@x' res = re.sub('x[A-Z]x', '!', txt) print(res)

Resultatet af kodeudførelsen:

'xax ! xcx x@x'

Eksempel

I dette eksempel ser søgemønsteret sådan ud: mellem x'er ethvert tal fra 0 til 9:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[0-9]x', '!', txt) print(res)

Resultatet af kodeudførelsen:

'xax ! ! ! x@x'

Eksempel

I dette eksempel ser søgemønsteret sådan ud: mellem x'er ethvert tal fra 3 til 7:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[3-7]x', '!', txt) print(res)

Resultatet af kodeudførelsen:

'xax x1x ! ! x@x'

Eksempel

I dette eksempel ser søgemønsteret sådan ud: mellem x'er ethvert bogstav fra 'a' til 'z' eller tal fra 1 til 9:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[a-z1-9]x', '!', txt) print(res)

Resultatet af kodeudførelsen:

'! ! ! ! x@x'

Eksempel

I dette eksempel ser søgemønsteret sådan ud: mellem x'er ethvert bogstav fra 'a' til 'z' eller bogstav fra 'A' til 'Z':

txt = 'xax xBx xcx x5x x@x' res = re.sub('x[a-zA-Z]x', '!', txt) print(res)

Resultatet af kodeudførelsen:

'! ! ! x5x x@x'

Eksempel

I dette eksempel ser søgemønsteret sådan ud: mellem x'er ethvert bogstav fra 'a' til 'z' eller tallene 1, 2:

txt = 'xax xbx x1x x2x x3x' res = re.sub('x[a-z12]x', '!', txt) print(res)

Resultatet af kodeudførelsen:

'! ! ! ! x3x'

Eksempel

I dette eksempel ser søgemønsteret sådan ud: mellem x'er bogstaver fra 'a' til 'z' i antal fra 1 og derover:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]+x', '!', txt) print(res)

Resultatet af kodeudførelsen:

'xx ! ! ! x123x xa3x'

Eksempel

Lad os gøre det så antallet af bogstaver også kan være nul:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]*x', '!', txt) print(res)

Som resultat får vi:

'! ! ! ! x123x xa3x'

Eksempel

Inden i kantede parenteser kan man også angive escapede tegn. Lad os finde en sekvens af bogstaver og tal, gentaget nul eller flere gange:

txt = 'xx x@x xadx xas12x xa3x' res = re.sub('x[a-z\d]*x', '!', txt) print(res)

Resultatet af kodeudførelsen:

'! x@x ! ! !'

Eksempel

Hvis vi har brug for at angive yderligere kantede parenteser, skal vi også escape dem:

txt = 'xx xrx xas[]x x3x' res = re.sub('x[a-z\[\]]*x', '!', txt) print(res)

Resultatet af kodeudførelsen:

'! ! ! x3x'

Praktiske opgaver

Givet en streng:

txt = 'aba aea aca aza axa'

Skriv et regulært udtryk, der finder efter følgende mønster: i enderne står bogstaverne 'a', og mellem dem - bogstavet 'b', 'e' eller 'x'.

Givet en streng:

txt = 'a1a a3a a7a a9a aba'

Skriv et regulært udtryk, der finder efter følgende mønster: i enderne står bogstavet 'a', og mellem dem - et tal fra 3 til 6.

Givet en streng:

txt = 'aba aea afa aha aga'

Skriv et regulært udtryk, der finder efter følgende mønster: i enderne står bogstavet 'a', og mellem dem - et bogstav fra 'a' til 'g'.

Givet en streng:

txt = 'aba aea afa aha aga'

Skriv et regulært udtryk, der finder efter følgende mønster: i enderne står bogstavet 'a', og mellem dem - et bogstav fra 'a' til 'f' og fra 'j' til 'z'.

Givet en streng:

txt = 'aAa aea aEa aJa a3a'

Skriv et regulært udtryk, der finder efter følgende mønster: i enderne står bogstavet 'a', og mellem dem - et bogstav fra 'a' til 'f' og fra 'A' til 'D'.

Givet en streng:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Skriv et regulært udtryk, der finder efter følgende mønster: i enderne står bogstavet 'a', og mellem dem - små latinske bogstaver, uden at påvirke de andre.

Givet en streng:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Skriv et regulært udtryk, der finder efter følgende mønster: i enderne står bogstavet 'a', og mellem dem - små og store latinske bogstaver, uden at påvirke de andre.

Givet en streng:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Skriv et regulært udtryk, der finder efter følgende mønster: i enderne står bogstavet 'a', og mellem dem - små latinske bogstaver og tal, uden at påvirke de andre.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis