Pitone | Dividere più caratteri dalla stringa

In Python, le stringhe sono un tipo di dati di base utilizzato per archiviare e lavorare con dati testuali. Dividere una stringa in numerosi caratteri è un'attività frequente di elaborazione del testo in Python. Durante la codifica o l'improvvisazione delle tue abilità di programmazione, sicuramente ti sarai imbattuto in molti scenari in cui avresti voluto utilizzare diviso() in Python non dividere su un solo carattere ma su più delimitatori contemporaneamente. In questo articolo vedremo diversi approcci a Stringa di pitone dividere più 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. 

In Pitone , Possiamo utilizzare approcci diversi per dividere più delimitatori dalla stringa. Con questi metodi, dividere e manipolare i singoli caratteri di una stringa in Python è semplice.

  • Utilizzando Funzione divisa
  • Usando sostituisci()
  • Utilizzando re.dividi()
  • Utilizzando re.findall()

Stringa divisa per più delimitatori utilizzando la funzione Dividi

In Python, possiamo dividere più caratteri da una stringa usando split(). Qui, iteriamo attraverso ciascun delimitatore e dividiamo la stringa utilizzando il metodo funzione divisa(). Dopo la divisione, uniamo l'elenco risultante con gli spazi utilizzando il comando funzione unisci() e dividiamo la stringa modificata in base agli spazi bianchi per ottenere l'elenco di stringhe desiderato.

Python3




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

Produzione

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

Python diviso per più caratteri utilizzando replace()

In Python, possiamo dividere più caratteri da una stringa usando sostituire(). Questo è un modo davvero inesperto di fare la divisione. Non fa uso di espressioni regolari ed è inefficiente, ma vale comunque la pena provarlo. Se conosci i caratteri su cui vuoi dividere, sostituiscili semplicemente con uno spazio e poi utilizzali diviso() .

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))>

Produzione

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

Python diviso per più caratteri utilizzando Re.split()

In Python, possiamo dividere più caratteri da una stringa usando replica(). Questo è il metodo più efficiente e comunemente utilizzato per dividere più caratteri contemporaneamente. Per fare ciò utilizza regex (espressioni regolari).

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))>

Produzione

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

La riga re.split(', |_|-|!', data) dice a Python di dividere i dati variabili sui caratteri: , O _ O O ! . Il simbolo | rappresenta o. Ci sono alcuni simboli nelle espressioni regolari che vengono trattati come simboli speciali e hanno funzioni diverse. Se desideri dividere su tale simbolo, devi evitarlo utilizzando a (barra rovesciata) e richiede uno spazio prima e dopo i caratteri speciali.

Elenco di caratteri speciali di cui è necessario eseguire l'escape prima di utilizzarli:

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

Esempio: In questo codice utilizziamo resplit () per dividere i caratteri dalle stringhe in 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))>

Produzione

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

Nota: Per saperne di più sulle espressioni regolari clicca qui .

Stringa divisa per più delimitatori utilizzando re.findall()

In Python, possiamo dividere più caratteri da una stringa usando refindall(). Questa è una forma un po' più arcana ma fa risparmiare tempo. Utilizza anche regex come sopra ma invece di .diviso() metodo, utilizza un metodo chiamato . trova tutto() . Questo metodo trova tutte le istanze corrispondenti e le restituisce ciascuna in un elenco. Questo modo di dividere è utilizzato al meglio quando non conosci i caratteri esatti su cui vuoi dividere.

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))>

Produzione

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

Qui la parola chiave [w']+ indica che troverà tutte le istanze di alfabeti o trattini bassi(_) uno o più e li restituirà in un elenco. Nota: [w']+ non si dividerà in caso di carattere di sottolineatura( _ ) mentre ricerca sia gli alfabeti che i caratteri di sottolineatura.

Esempio: In questo codice utilizziamo refindall() per dividere i caratteri dalle stringhe Pitone.

Python3




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

Produzione

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

Classi di caratteri

Foglio informativo sulle regex sulla descrizione del personaggio

Classe di caratteri abbreviati Rappresenta
D Qualsiasi cifra numerica da 0 a 9
D Qualsiasi carattere che non sia una cifra numerica compresa tra 0 e 9
In Qualsiasi lettera, cifra numerica o carattere di sottolineatura
IN Qualsiasi carattere che non sia una lettera, una cifra numerica o un carattere di sottolineatura
S Qualsiasi spazio, tabulazione o carattere di nuova riga
S Qualsiasi carattere che non sia uno spazio, una tabulazione o una nuova riga