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 |