Wie zum entfernen oder ersetzen von Teilstrings in Python bestimmt durch start-und end-Punkt?
Von Zeit zu Zeit würde ich entfernen oder ersetzen von Teilstrings aus einem langen string. Also, ich würde bestimmen Sie ein start-patern und ein Ende patern, die würde bestimmen start-und Endpunkt der substring:
long_string = "lorem ipsum..white chevy..blah,blah...lot of text..beer bottle....and so to the end"
removed_substr_start = "white chevy"
removed_substr_end = "beer bott"
# this is pseudo method down
STRresult = long_string.replace( [from]removed_substr_start [to]removed_substr_end, "")
- Haben Sie sah in mit einem regulären Ausdruck?
- Vor langer Zeit, aber habe mich nicht erinnern, irgendeine Art von start - Ende zeigt.
- Ich glaube du bist zu fokussiert auf die Berechnung der start-und end-Punkte und nicht auf das, was Sie eigentlich erreichen wollen.
- Ja, aber es scheint nützlich zu sein, und ich Frage mich, sollte ich bauen meine eigene Funktion, wenn es nicht gebaut.
- Es ist, und es ist ein regulärer Ausdruck, siehe meine Antwort. (edit: und jetzt alle anderen Antworten)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie wollen so etwas wie, dass ohne regex:
Nicht getestet, und Sie sollten geschützt die erste Zeile von der Ausnahme (wenn Beginn oder Ende nicht gefunden), aber die Idee ist hier 🙂
"lorem ipsum..beer bottle..blah,blah...lot of text..white chevy....and so to the end"
ist, wird der Ausgang"lorem ipsum..beer bottle..blah,blah...lot of text..white chevy"
. Wo hast das Ende gehen?find
undrfind
😉Können Sie
regex
:Wenn Sie nur wollen, entfernen Sie den sub-string zwischen
"white chevy"
und"beer bott"
aber nicht diese Worte:re.escape
diesub_start
undsub_end
nur für den Fall...Bekommen die Start-index mit
string.find()
und der Letzte index mitstring.rfind()
und dann entfernen Sie einfach den inneren Teil mit:Finden Sie unter: http://docs.python.org/2/library/string.html#string.find
str
's Methoden,string
- Modul nicht verwendet für diese Methoden nicht mehr. Und dieses funktioniert nicht in py3.x.gibt:
Nachdem viele Ansätze, ich fand diese Lösung die beste, ohne regex: