2017-02-02 18 views
1

Ich habe einen Text, der viele Klammern mit Text dazwischen enthält. Für diese Klammern zu entfernen (und Text) Ich schrieb dies:Entfernen Klammern (und Text in Klammern) aus einem Satz

import re 
def generalDatacleaning(mystring): 
    result = re.sub(r'[]', '', mystring) 
    print(result) 

Ausführen dieses auf einem Beispielsatz gibt mir jedoch „ete“ (die Innenseite der Halterung):

test = "[ete], this is a text" 
generalDatacleaning(test) 

Was soll ich ändern Also wird der [Text] Teil entfernt?

Antwort

1

Dies funktioniert:

re.sub(r"\[[^]]*\]", "", test) 

Beginnt mit der öffnenden Klammer, nimmt alles in sich, dass kein schließenden Klammer ist, nimmt die Schließbügel. Ersetzen Sie alles durch eine leere Zeichenfolge.

Viel effizienter als. *? (benötigt nicht das, was "Backtracking" genannt wird) und arbeitet auch mit Zeilenumbrüchen innerhalb der Klammern.

Verwandte Themen