Python | Del flere tegn fra streng

I Python er Strings en grunnleggende datatype som brukes til å lagre og jobbe med tekstdata. Å dele opp en streng i flere tegn er en hyppig tekstbehandlingsaktivitet i Python. Mens du koder eller improviserer programmeringsferdighetene dine, må du sikkert ha kommet over mange scenarier du ønsket å bruke dele() i Python for ikke å dele på bare ett tegn, men flere skilletegn samtidig. I denne artikkelen vil vi se ulike tilnærminger til Python-streng dele flere skilletegn.

  Input:   'GeeksForGeeks, is an-awesome! website'   Output:   ['GeeksForGeeks, ', 'is', 'an-awesome!', 'website']   Explanation:   In This, we are splitting the multiple delimiters from the string. 

I Python , Vi kan bruke forskjellige tilnærminger for å dele flere skilletegn fra strengen. Med disse metodene er det enkelt å dele og manipulere individuelle tegn fra en streng i Python.

  • Ved hjelp av Split funksjon
  • Bruker erstatte()
  • Ved hjelp av re.split()
  • Bruke re.findall()

Del streng med flere skilletegn ved å bruke Split-funksjonen

I Python kan vi dele flere tegn fra en streng ved å bruke split(). Her itererer vi gjennom hver skilletegn og deler strengen ved å bruke split() funksjon. Etter å ha delt, slutter vi oss til den resulterende listen med mellomrom ved å bruke join() funksjon og vi deler den modifiserte strengen basert på mellomrom for å få ønsket liste over strenger.

Python3




string> => 'GeeksForGeeks, | is an-awesome! website'> delimiters> => [> ','> ,> '|'> ,> ';'> ,> '!'> ]> for> delimiter> in> delimiters:> > string> => ' '> .join(string.split(delimiter))> result> => string.split()> print> (result)>

Produksjon

['GeeksForGeeks', 'is', 'an-awesome', 'website'] 

Python delt opp med flere tegn ved å bruke replace()

I Python kan vi dele flere tegn fra en streng ved å bruke erstatte(). Dette er en veldig nybegynner måte å gjøre splittelsen på. Den bruker ikke regex og er ineffektiv, men likevel verdt et forsøk. Hvis du kjenner karakterene du vil dele på, er det bare å erstatte dem med et mellomrom og deretter bruke dele() .

Python3




data> => 'Let's_try, this now'> # printing original string> print> (> 'The original string is : '> +> data)> # Using replace() and split()> # Splitting characters in String> res> => data.replace(> '_'> ,> ' '> ).replace(> ', '> ,> ' '> ).split()> print> (> 'The list after performing split functionality : '> +> str> (res))>

Produksjon

The original string is : Let's_try, this now The list after performing split functionality : ['Let's', 'try', 'this', 'now'] 

Python Splitt etter flere tegn ved å bruke Re.split()

I Python kan vi dele flere tegn fra en streng ved å bruke resplit(). Dette er den mest effektive og mest brukte metoden for å dele flere tegn samtidig. Den bruker regex (regulære uttrykk) for å gjøre dette.

Python3




import> re> data> => 'techcodeview.com, is_an-awesome ! website'> print> (> 'The original string is : '> +> data)> # Using re.split()> # Splitting characters in String> res> => re.split(> ', |_|-|!'> , data)> print> (> 'The list after performing split functionality : '> +> str> (res))>

Produksjon

The original string is : techcodeview.com, is_an-awesome ! website The list after performing split functionality : ['techcodeview.com', 'is', 'an', 'awesome ', ' website'] 

Linjen re.split(‘, |_|-|!’, data) forteller Python å dele variabeldataene på tegnene: , eller _ eller eller ! . Symbolet | representerer eller. Det er noen symboler i regex som behandles som spesielle symboler og har forskjellige funksjoner. Hvis du ønsker å dele på et slikt symbol, må du unnslippe det ved å bruke en (back-slash) og den trenger ett mellomrom før og etter spesialtegn.

Liste over spesialtegn som må escapes før du bruker dem:

.  + * ? [ ^ ] $ ( ) { } = | : 

Eksempel: I denne koden bruker vi resplit () for å dele tegn fra strenger i Python.

Python3




import> re> newData1> => 'techcodeview.com, is_an-awesome ! app + too'> # To split '+' with one espace before and after '+' symbol and use backslash> print> (re.split(> ', |_|-|!|+'> , newData1))> newData2> => 'techcodeview.com, is_an-awesome ! app+too'> # To split '+' without one espace before and after '+' symbol and use backslash> print> (re.split(> ', |_|-|!|+'> , newData2))>

Produksjon

['techcodeview.com', ' is', 'an', 'awesome', ' app', 'too'] 

Merk: For å vite mer om regex Klikk her .

Del streng etter flere skilletegn ved å bruke re.findall()

I Python kan vi dele flere tegn fra en streng ved å bruke refindall(). Dette er en litt mer mystisk form, men sparer tid. Den bruker også regex som ovenfor, men i stedet for .dele() metode, bruker den en metode kalt . findall() . Denne metoden finner alle samsvarende forekomster og returnerer hver av dem i en liste. Denne måten å dele på er best brukt når du ikke vet nøyaktig hvilke tegn du vil dele på.

Python3




import> re> data> => 'This, is - another : example?!'> print> (> 'The original string is : '> +> data)> # Using re.findall()> # Splitting characters in String> res> => re.findall(r> '[w']+'> , data)> print> (> 'The list after performing split functionality : '> +> str> (res))>

Produksjon

The original string is : This, is - another : example?! The list after performing split functionality : ['This', 'is', 'another', 'example'] 

Her indikerer nøkkelordet [w’]+ at det vil finne alle forekomstene av alfabeter eller understrek(_) en eller flere og returnere dem i en liste. Merk: [w']+ vil ikke dele seg på et understrek( _ ) ettersom den søker etter alfabeter og understreker.

Eksempel: I denne koden bruker vi refindall () for å dele tegn fra strenger inn Python.

Python3




import> re> testData> => 'This, is - underscored _ example?!'> print> (re.findall(r> '[w']+'> , testData))>

Produksjon

['This', 'is', 'underscored', '_', 'example'] 

Karakterklasser

Regex jukseark på karakterbeskrivelse

Stenografisk karakterklasse Representerer
d Ethvert numerisk siffer fra 0 til 9
D Ethvert tegn som ikke er et numerisk siffer fra 0 til 9
I En hvilken som helst bokstav, numerisk siffer eller understrekingstegn
I Ethvert tegn som ikke er en bokstav, numerisk siffer eller understrekingstegn
s Ethvert mellomrom, tabulator eller nylinjetegn
S Ethvert tegn som ikke er et mellomrom, tabulator eller ny linje