Seite 1 von 1
'\' an string anfügen
Verfasst: Montag 8. Mai 2006, 15:11
von keboo
Hallo Leute!
Ich will an einen String das Zeichen '\' anfügen.
Wird aber nicht gemacht. Warum?
Ist das ein Zeichen für Kommentar?
Danke,
johannes
Verfasst: Montag 8. Mai 2006, 15:15
von jens
\ ist ein sonderzeichen zum einleiten von Sonderzeichen
Also \n für newline und \t für tab...
Entweder zu escapest das Zeichen einfach mit der dopplung:
oder du machst ein rawstring daraus:
Verfasst: Montag 8. Mai 2006, 15:27
von keboo
irgendsowas hab ich vermutet gehabt.
danke für die rasche antwort.
Lg
johannes
Verfasst: Dienstag 9. Mai 2006, 18:29
von murphy
bei mir funktioniert r'\' nicht:
Code: Alles auswählen
Python 2.3.5 (#62, Feb 8 2005, 16:23:02) [MSC v.1200 32 bit (Intel)] on win32
>>> print r'\'
File "<stdin>", line 1
print r'\'
^
SyntaxError: EOL while scanning single-quoted string
am ende eines strings gehts niccht
Verfasst: Dienstag 9. Mai 2006, 18:59
von Gromit
Verfasst: Dienstag 9. Mai 2006, 21:34
von gerold
murphy hat geschrieben:bei mir funktioniert r'\' nicht
Hi murphy!
Das ist eine Ausnahme. -- leider -- Der Backslash (\) darf nicht an letzter Stelle stehen. -- Warum auch immer.
In solchen Fällen bleibt dir nichts anderes übrig, als "\" (ohne r) zu schreiben.
lg
Gerold
Verfasst: Dienstag 16. Mai 2006, 15:12
von murphy
gerold hat geschrieben:Das ist eine Ausnahme. -- leider -- Der Backslash (\) darf nicht an letzter Stelle stehen. -- Warum auch immer.
ist doch irgendwie logisch - man muss ja auch single quotes in den string schreiben dürfen, und damit Python das vom string-ende unterscheiden kann, werden sie maskiert.
ein einzelner slash am ende wäre so ein maskiertes ' - und der string wäre noch offen.
also doch kein fehler im highlighting
Verfasst: Montag 4. Dezember 2006, 14:32
von darkfrog
'\\' scheint bei mir aber nicht zu funktionieren:
Code: Alles auswählen
wort = re.sub(r"^'''", u"""\\""" + u"""bold{""", wort)
als Ausgabe erhalte ich immer old{
Verfasst: Montag 4. Dezember 2006, 15:35
von BlackJack
darkfrog hat geschrieben:'\\' scheint bei mir aber nicht zu funktionieren:
als Ausgabe erhalte ich immer old{
Du hast den Rückschritt unterschlagen der vorher ausgegeben wird:
Code: Alles auswählen
In [72]: re.sub(r"^'''", u"""\""" + u"""bold{""", "'''spam")
Out[72]: u'\x08old{spam'
In [73]: '\b'
Out[73]: '\x08'
Mit dem '\\' erzeugst Du einen Backslash, aber in regulären Ausdrücken gibt's auch wieder die Escape-Sequenzen, also musst Du doppelt escapen:
Code: Alles auswählen
In [74]: re.sub(r"^'''", u"""\\\""" + u"""bold{""", "'''spam")
Out[74]: u'\\bold{spam'
In [75]: print re.sub(r"^'''", u"""\\\""" + u"""bold{""", "'''spam")
\bold{spam
Oder halt etwas kürzer als Raw-String:
Code: Alles auswählen
In [76]: print re.sub(r"^'''", r'\\bold{', "'''spam")
\bold{spam
Verfasst: Montag 4. Dezember 2006, 15:57
von darkfrog
vielen dank,
ich dachte zwar ich hätte das mit dem rawstring schon so ausprobiert, aber anscheinend täusche ich mich da
Verfasst: Dienstag 8. Juli 2008, 13:23
von pythonforumuser
Hallo,
bei mir funktioniert das leider nicht:
Python-Interpreter:
und:
Python-Interpreter:
Könnte mir jemand sagen, wie ich eine String-Variable erhalte, wo der backslash nur einmal und nicht doppelt drin ist?
Verfasst: Dienstag 8. Juli 2008, 13:34
von audax
was dir angezeigt wird ist "repr(mein_string)".
Wenn du den String mit print ausgibst erscheint nur ein \ .
Verfasst: Dienstag 8. Juli 2008, 13:36
von pythonforumuser
Dankeschön. Das passt!