2017-02-20 2 views
0

Ich versuche, Tags in Text zu entfernen, die durch einen umgekehrten Schrägstrich gekennzeichnet sind. Zum Beispiel möchte ich für den Ausdruck "Hello \ tag world" den Ausdruck "Hallo Welt" zurückgeben. Ich habe das folgende versucht, aber es wird das '\ tag' nicht los.Regex Python - Backslash

print re.sub('\\[A-Za-z]+',' ',text) 

Ich bin sicher, es ist etwas einfaches, aber ich kann es nicht herausfinden.

Danke für jede Hilfe, die Sie geben können!

+1

Verwenden Sie rohe Zeichenfolgen für Regexe. '' \\ '' setzt einen literalen umgekehrten Schrägstrich in Ihre Regex, aber ein umgekehrter Schrägstrich in Ihrer Regex stimmt nicht mit einem umgekehrten Schrägstrich in 'text' überein - er wird von der Regex-Engine als Escape-Zeichen behandelt. Du benötigst die zusätzliche Ebene der Flucht, die rohe Strings bieten. – user2357112

Antwort

2

Muss sein:

re.sub('\\\\[A-Za-z]+',' ',text) 

Andernfalls '\\' als regex spezielle Escape-Zeichen behandelt wird.

+1

Während das eine gültige Option ist, ist rohe Zeichenfolge-Notation normalerweise bequemer. – user2357112

+1

@ user2357112 das ist völlig eine Frage der Meinung. Diese Antwort ist absolut gültig und [diese] (http://stackoverflow.com/questions/33582162/backslashes-in-python-regular-expressions) wäre eine bessere doppelte Frage gewesen. – miken32

Verwandte Themen