Python-Funktion, um String zwischen zwei Markern zu finden

Ich schaue, um eine String-Funktion zu bauen, um den String-Inhalt zwischen zwei Markern zu extrahieren. Es gibt eine Extraktionsliste zurück

def extract(raw_string, start_marker, end_marker): ... function ... return extraction_list 

Ich weiß, das kann mit regex getan werden, aber ist das schnell? Das wird in meinem Prozess millionenfach genannt. Was ist der schnellste Weg, dies zu tun?

  • Was ändert sich, wenn Ihre Eingabe Giga / Terabyte Größe ist?
  • Python schließt einen Faden auf Multithreading
  • Running Python im Hintergrund auf OS X
  • Aufruf eines Coroutine von asyncio.Protocol.data_received
  • Speichern Sie eine Liste von Objekten beim Ausstieg von Pygame-Spiel
  • Decodieren json wörterbuch mit python
  • Was passiert, wenn die Markierungen gleich sind und erscheinen und ungerade Anzahl der Zeiten?

    Die Funktion sollte mehrere Strings zurückgeben, wenn die Start- und Endmarkierungen mehr als einmal erscheinen.

  • Python 3 vs Python 2 Kartenverhalten
  • Grundlegendes Abrufen des HTML-Körpers einer URL mit Python 3.x
  • Django Syncdb Fehler: Ein oder mehrere Modelle nicht validiert
  • Wie bekomme ich numerische Daten beim Web-Scraping?
  • Python automatisieren ffmpeg konvertierung aus hochladen verzeichnis
  • Kann Scipy nicht aktualisieren
  • One Solution collect form web for “Python-Funktion, um String zwischen zwei Markern zu finden”

    Sie können wahrscheinlich nicht schneller gehen als:

     def extract(raw_string, start_marker, end_marker): start = raw_string.index(start_marker) + len(start_marker) end = raw_string.index(end_marker, start) return raw_string[start:end] 

    Aber wenn du Regex ausprobieren möchtest, versuch einfach es zu benchmarkieren. Es gibt ein gutes Timim-Modul dafür.

    Python ist die beste Programmiersprache der Welt.