În Python, șirurile de caractere sunt un tip de date de bază care este folosit pentru a stoca și a lucra cu date textuale. Împărțirea unui șir în numeroase caractere este o activitate frecventă de procesare a textului în Python. În timp ce vă codificați sau improvizați abilitățile de programare, cu siguranță trebuie să fi întâlnit multe scenarii în care ați dorit să utilizați Despică() în Python să nu se împartă doar pe un singur caracter, ci mai mulți Delimitatori simultan. În acest articol, vom vedea diferite abordări șir Python împărțiți mai mulți delimitatori.
Input: 'GeeksForGeeks, is an-awesome! website' Output: ['GeeksForGeeks, ', 'is', 'an-awesome!', 'website'] Explanation: In This, we are splitting the multiple delimiters from the string.>
În Piton , Putem folosi diferite abordări pentru a împărți mai mulți Delimitatori din șir. Cu aceste metode, împărțirea și manipularea caracterelor individuale dintr-un șir în Python este simplă.
- Folosind Funcția de împărțire
- Folosind înlocuiți()
- Folosind re.split()
- Folosind re.findall()
Împărțiți șirul prin delimitatori multipli folosind funcția de împărțire
În Python, putem împărți mai multe caractere dintr-un șir folosind split(). Aici, repetăm fiecare delimitator și împărțim șirul folosind funcția split(). După împărțire, unim lista rezultată cu spații folosind funcția join(). și împărțim șirul modificat pe baza spațiului alb pentru a obține lista dorită de șiruri.
Python3
string>=> 'GeeksForGeeks, | is an-awesome! website'> delimiters>=> [>','>,>'|'>,>';'>,>'!'>]> for> delimiter>in> delimiters:> >string>=> ' '>.join(string.split(delimiter))> result>=> string.split()> print>(result)> |
>
>
Ieșire
['GeeksForGeeks', 'is', 'an-awesome', 'website']>
Python împărțit prin mai multe caractere folosind înlocuire()
În Python, putem împărți mai multe caractere dintr-un șir folosind a inlocui(). Acesta este un mod foarte începător de a face împărțirea. Nu folosește regex și este ineficient, dar merită totuși încercat. Dacă știți caracterele pe care doriți să le împărțiți, înlocuiți-le cu un spațiu și apoi utilizați Despică() .
Python3
numerotati alfabetul
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))> |
istorie în java
>
>
Ieșire
The original string is : Let's_try, this now The list after performing split functionality : ['Let's', 'try', 'this', 'now']>
Python Split prin mai multe caractere folosind Re.split()
În Python, putem împărți mai multe caractere dintr-un șir folosind resplit(). Aceasta este cea mai eficientă și folosită metodă de a împărți mai multe caractere simultan. Utilizează regex (expresii regulate) pentru a face acest lucru.
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))> |
>
>
Ieșire
The original string is : techcodeview.com, is_an-awesome ! website The list after performing split functionality : ['techcodeview.com', 'is', 'an', 'awesome ', ' website']>
Linia re.split(‘, |_|-|!’, data) îi spune lui Python să împartă datele variabile pe caractere: , sau _ sau – sau ! . Simbolul | reprezintă sau. Există unele simboluri în regex care sunt tratate ca simboluri speciale și au funcții diferite. Dacă doriți să împărțiți un astfel de simbol, trebuie să scăpați de el folosind a (back-slash) și are nevoie de un spațiu înainte și după caracterele speciale.
Lista de caractere speciale care trebuie să fie eliminate înainte de a le folosi:
. + * ? [ ^ ] $ ( ) { } = | :> Exemplu: În acest cod, folosim resplit () pentru a împărți caracterele din șiruri în Python.
directorul din comenzile Linux
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))> |
>
>
Ieșire
['techcodeview.com', ' is', 'an', 'awesome', ' app', 'too']>
Notă: Pentru a afla mai multe despre regex click aici .
Împărțiți șirul prin mai mulți delimitatori folosind re.findall()
În Python, putem împărți mai multe caractere dintr-un șir folosind refindall(). Aceasta este o formă puțin mai arcană, dar economisește timp. De asemenea, folosește regex ca mai sus, dar în loc de .Despică() metoda, folosește o metodă numită . Găsiți toate() . Această metodă găsește toate instanțele care se potrivesc și returnează fiecare dintre ele într-o listă. Acest mod de împărțire este cel mai bine utilizat atunci când nu cunoașteți exact caracterele pe care doriți să le împărțiți.
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))> |
>
>
Ieșire
The original string is : This, is - another : example?! The list after performing split functionality : ['This', 'is', 'another', 'example']>
Aici cuvântul cheie [w’]+ indică faptul că va găsi toate cazurile de alfabete sau litere de subliniere(_) unul sau mai multe și le va returna într-o listă. Notă: [w’]+ nu se va împărți după un caracter de subliniere( _ ) deoarece caută alfabete, precum și liniuțe de subliniere.
Exemplu: În acest cod, folosim refindall () pentru a împărți caracterele din șiruri de caractere Piton.
Python3
import> re> testData>=> 'This, is - underscored _ example?!'> print>(re.findall(r>'[w']+'>, testData))> |
>
>
Ieșire
interfață comparabilă cu java
['This', 'is', 'underscored', '_', 'example']>
Clasele de caractere
Cheat sheet Regex pe descrierea caracterului
| Clasa de caractere stenografie | Reprezintă |
|---|---|
| d | Orice cifră numerică de la 0 la 9 |
| D | Orice caracter care nu este o cifră numerică de la 0 la 9 |
| În | Orice literă, cifră numerică sau caracter de subliniere |
| ÎN | Orice caracter care nu este o literă, o cifră numerică sau caracterul de subliniere |
| s | Orice caracter de spațiu, tabulație sau linie nouă |
| S | Orice caracter care nu este un spațiu, tabulator sau linie nouă |