⊗pyPmREChS 40 of 129 menu

Tegnsett i regulære uttrykk i Python

Tegngruppene \d og \w er ikke veldig fleksible. Selv en så enkel oppgave som å finne alle bokstaver, men ikke tall - kan ikke løses av dem. For slike oppgaver bor man bruke hakeparenteser, som representerer en 'eller'-operasjon.

Hakeparenteser erstatter ett tegn, hvilket som helst av de som er opplistet inni. For eksempel, slik: x[abc]x - sier vi at det skal stå bokstaver x på kantene, og inni - ett tegn: enten 'a', eller 'b', eller 'c'.

Etter hakeparenteser kan man skrive gjentakelsesoperatorer. For eksempel, slik: x[abc]+x - sier vi at inni x-ene kan være et hvilket som helst antall tegn 'a', 'b' og 'c' - i hvilke som helst kombinasjoner.

Man kan ikke bare liste opp tegn, men også opprette tegn-grupper ved å skrive bindestrek mellom to tegn. For eksempel, slik: [a-d] - får vi alle tegn fra 'a' til 'd'.

La oss se på eksempler.

Eksempel

I dette eksemplet ser søkemønsteret slik ut: mellom x-ene hvilken som helst bokstav fra 'a' til 'z':

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

Resultat av kjøring av koden:

'! ! ! x@x'

Eksempel

I dette eksemplet ser søkemønsteret slik ut: mellom x-ene hvilken som helst bokstav fra 'a' til 'k':

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

Resultat av kjøring av koden:

'! ! xmx x@x'

Eksempel

I dette eksemplet ser søkemønsteret slik ut: mellom x-ene hvilken som helst bokstav fra 'A' til 'Z':

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

Resultat av kjøring av koden:

'xax ! xcx x@x'

Eksempel

I dette eksemplet ser søkemønsteret slik ut: mellom x-ene hvilket som helst tall fra 0 til 9:

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

Resultat av kjøring av koden:

'xax ! ! ! x@x'

Eksempel

I dette eksemplet ser søkemønsteret slik ut: mellom x-ene hvilket som helst tall fra 3 til 7:

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

Resultat av kjøring av koden:

'xax x1x ! ! x@x'

Eksempel

I dette eksemplet ser søkemønsteret slik ut: mellom x-ene hvilken som helst bokstav fra 'a' til 'z' eller tall fra 1 til 9:

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

Resultat av kjøring av koden:

'! ! ! ! x@x'

Eksempel

I dette eksemplet ser søkemønsteret slik ut: mellom x-ene hvilken som helst bokstav fra 'a' til 'z' eller bokstav fra 'A' til 'Z':

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

Resultat av kjøring av koden:

'! ! ! x5x x@x'

Eksempel

I dette eksemplet ser søkemønsteret slik ut: mellom x-ene hvilken som helst bokstav fra 'a' til 'z' eller tallene 1, 2:

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

Resultat av kjøring av koden:

'! ! ! ! x3x'

Eksempel

I dette eksemplet ser søkemønsteret slik ut: mellom x-ene bokstaver fra 'a' til 'z' i antall fra 1 og mer:

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

Resultat av kjøring av koden:

'xx ! ! ! x123x xa3x'

Eksempel

La oss gjøre slik at antall bokstaver kan være null også:

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

Som et resultat vil vi få:

'! ! ! ! x123x xa3x'

Eksempel

Inni hakeparenteser kan man også spesifisere escapede tegn. La oss finne en sekvens av bokstaver og tall, som gjentas null eller flere ganger:

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

Resultat av kjøring av koden:

'! x@x ! ! !'

Eksempel

Hvis vi trenger å spesifisere enda en hakeparentes, må vi også escape den:

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

Resultat av kjøring av koden:

'! ! ! x3x'

Praktiske oppgaver

Gitt en streng:

txt = 'aba aea aca aza axa'

Skriv et regulært uttrykk som finner etter følgende mønster: på kantene står bokstaver 'a', og mellom dem - bokstaven 'b', 'e' eller 'x'.

Gitt en streng:

txt = 'a1a a3a a7a a9a aba'

Skriv et regulært uttrykk som finner etter følgende mønster: på kantene står bokstaver 'a', og mellom dem - et tall fra 3 til 6.

Gitt en streng:

txt = 'aba aea afa aha aga'

Skriv et regulært uttrykk som finner etter følgende mønster: på kantene står bokstaver 'a', og mellom dem - en bokstav fra 'a' til 'g'.

Gitt en streng:

txt = 'aba aea afa aha aga'

Skriv et regulært uttrykk som finner etter følgende mønster: på kantene står bokstaver 'a', og mellom dem - en bokstav fra 'a' til 'f' og fra 'j' til 'z'.

Gitt en streng:

txt = 'aAa aea aEa aJa a3a'

Skriv et regulært uttrykk som finner etter følgende mønster: på kantene står bokstaver 'a', og mellom dem - en bokstav fra 'a' til 'f' og fra 'A' til 'D'.

Gitt en streng:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Skriv et regulært uttrykk som finner etter følgende mønster: på kantene står bokstaver 'a', og mellom dem - små latinske bokstaver, uten å berøre de andre.

Gitt en streng:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Skriv et regulært uttrykk som finner etter følgende mønster: på kantene står bokstaver 'a', og mellom dem - små og store latinske bokstaver, uten å berøre de andre.

Gitt en streng:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Skriv et regulært uttrykk som finner etter følgende mønster: på kantene står bokstaver 'a', og mellom dem - små latinske bokstaver og tall, uten å berøre de andre.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis