Ho una stringa. Come rimuovo tutto il testo dopo un determinato carattere? (In questo caso ...
)
Il testo dopo volontà ...
cambiamento così mi è per questo che voglio rimuovere tutti i caratteri dopo un certo uno.Come rimuovere tutti i caratteri dopo un carattere specifico in python?
risposta
Split sul separatore al massimo una volta, e prendere il primo pezzo :
sep = '...'
rest = text.split(sep, 1)[0]
Non hai detto cosa dovrebbe succedere se il separatore non è presente. Sia questa che la soluzione di Alex restituiranno l'intera stringa in quel caso.
La richiesta è "rimuovere tutto il testo dopo" il separatore, non "ottenere" quel testo, quindi penso che tu voglia [0], non [-1], nella tua soluzione altrimenti eccellente. –
Ho lavorato perfettamente grazie, sono sicuro che anche Ayman e Alex lo hanno fatto, quindi grazie a tutti. – Solihull
Utilizzare rsplit() se è necessario dividere un carattere a partire dalla fine della stringa. – Samuel
Senza un RE (che presumo è quello che volete):
def remafterellipsis(text):
where_ellipsis = text.find('...')
if where_ellipsis == -1:
return text
return text[:where_ellipsis + 3]
o, con un RE:
import re
def remwithre(text, there=re.compile(re.escape('...')+'.*')):
return there.sub('', text)
Potrebbe voler usare sep = '...' come un kwarg e usare len (sep) invece di codificare a fondo il 3 per renderlo leggermente più a prova di futuro. – cdleary
Sì, ma poi è necessario ricompilare l'RE per ogni chiamata, quindi le prestazioni soffre per la soluzione RE (nessuna vera differenza per la soluzione non RE). Alcune generalità sono gratuite, altre no ... ;-) –
@Alex - Grazie per aver testato le soluzioni! –
Supponendo che il separatore sia '...', ma può essere qualsiasi stringa.
text = 'some string... this part will be removed.'
head, sep, tail = text.partition('...')
>>> print head
some string
Se il separatore non viene trovato, head
conterrà tutta la stringa originale.
La funzione di partizione è stata aggiunta in Python 2.5.
partizione (...) S.partition (settembre) -> (testa, settembre, coda)
Searches for the separator sep in S, and returns the part before it, the separator itself, and the part after it. If the separator is not found, returns S and two empty strings.
Ancora un'altra soluzione eccellente - stiamo violando TOOOWTDI? -) Forse vale la pena eseguire un timeit per controllare ... –
.partition vince - 0,756 usec per ciclo, contro 1,13 per .split (la formattazione dei commenti non consente di mostrare i test esatti, ma sto usando il testo e il separatore di @ Ayman), quindi +1 per @ Ayman risposta! –
e btw, per completezza, la soluzione basata su RE è 2.54 usec, cioè più lenta di quella di @ Ayman o di @ Ned. La partizione –
un altro modo semplice utilizzando ri sarà
import re, clr
text = 'some string... this part will be removed.'
text= re.search(r'(\A.*)\.\.\..+',url,re.DOTALL|re.IGNORECASE).group(1)
// text = some string
Se si desidera rimuovere tutto dopo l'ultima occorrenza del separatore in una stringa, trovo che funzioni correttamente:
<separator>.join(string_to_split.split(<separator>)[:-1])
Per esempio, se string_to_split
è un percorso come root/location/child/too_far.exe
e si desidera solo il percorso della cartella, è possibile dividere per "/".join(string_to_split.split("/")[:-1])
e si otterrà root/location/child
Inoltre, è possibile modificare tale valore -1 in qualsiasi indice per essere l'occorrenza in cui si rilascia il testo. – theannouncer
- 1. Come rimuovere tutti i caratteri da una stringa prima di un carattere specifico
- 2. Notepad ++ Come rimuovere tutti i caratteri in attesa di un carattere specifico
- 3. Come eliminare tutti i caratteri dopo un carattere nella stringa?
- 4. Qual è il modo più elegante per rimuovere tutti i caratteri dopo un carattere specifico nell'oggetto String in Swift
- 5. MySQL ottiene tutti i caratteri prima del carattere specifico
- 6. Sostituisci il numero di caratteri dopo un carattere specifico
- 7. Java: rimuovere tutti i caratteri dopo il punto
- 8. rimuovere tutti i caratteri speciali in java
- 9. Rimuovere tutti i valore specifico da serie
- 10. Stampa tutti i caratteri di un carattere in MS Word
- 11. Rimuovere i caratteri prima e includendo un simbolo specifico
- 12. Rimuovere tutti i caratteri speciali da una stringa in R?
- 13. Impostare un carattere specifico per tutti i numeri nella pagina
- 14. Come verificare quali caratteri contengono un carattere specifico con perl?
- 15. Rimuovere i caratteri dopo la stringa?
- 16. come inserire nuova riga dopo un carattere specifico in script
- 17. Estrai testo dopo carattere specifico
- 18. Come ottenere tutti i caratteri dopo l'ultimo '-' in una stringa
- 19. SQL Server sostituire, rimuovere tutti dopo determinato carattere
- 20. UTF 8 String rimuovere tutti i caratteri invisibili, tranne newline
- 21. come rimuovere i caratteri da NSString dopo specifica NSString
- 22. Python/BeautifulSoup - come rimuovere tutti i tag da un elemento?
- 23. Come sostituire tutti i caratteri in una stringa utilizzando JavaScript per questo caso specifico: sostituire. by _
- 24. elimina i dati nella cella dopo il carattere specifico
- 25. maiuscola dopo i caratteri speciali in R
- 26. Come rimuovere tutti i caratteri da una stringa
- 27. Regex per rimuovere tutti i caratteri speciali dalla stringa?
- 28. UITextField nascondi tutti i caratteri
- 29. PHP rimuovere caratteri dopo l'ultimo occorrenza di un carattere in una stringa
- 30. bash - espressione dopo ultimo carattere specifico
Se non sei sicuro che abbia senso, quindi aggiorna la tua domanda per fornire esempi specifici di ciò che vuoi fare. –