2011-01-07 3 views

Antwort

96

Wenn Sie doppelte Anführungszeichen in Strings verwenden möchten, aber nicht einzelne Zitate, können Sie nur einfache Anführungszeichen als Trennzeichen verwenden Sie stattdessen:

r'what"ever' 

Wenn Sie beide Arten von Anführungszeichen in der Zeichenfolge benötigen, verwenden Sie ein triple-zitiert string:

r"""what"ev'er""" 

Wenn Sie beide Arten von Triple-Strings in Anführungszeichen in der Zeichenfolge (ein äußerst unwahrscheinlichen Fall) aufnehmen möchten, können Sie es nicht tun, und Sie werden nicht roh Strings verwenden müssen mit entkommt.

+1

Ausgezeichnet. Ich brauchte eine Sekunde, um zu erkennen, dass ich auch Saiten mit dreifacher Anführungszeichen roh machen konnte. – mpen

+3

Ich mag den letzten Absatz auch ... das war genau das, was ich herausfinden wollte. Die Einschränkungen verschiedener Anführungsstile Ich vergleiche Pythons "r" rohe Zeichenkette "' und C# 's "@ quotierte Zeichenkette" 'und' "" "Triple-Anführungszeichen" "" – mpen

+2

Python newb hier, etwas verwirrt, ist nicht "r'was" jemals "' ein Parsefehler? Meinst du "r'was" jemals? – nmr

7

Python hat mehr als eine Möglichkeit Strings zu tun, die folgende Zeichenfolge Syntax Ihnen erlauben würde, doppelte Anführungszeichen zu verwenden:

'''what"ever''' 
+0

' 'Single quotes'' versuchen und' "" "Triple double quotes" "" funktionieren auch. – mtrw

+0

Sie haben den * rohen * Teil der Frage verfehlt. – mpen

+0

nicht realisiert '' 'hat auch funktioniert, danke – andrewm4894

2

Nevermind, ist die Antwort roh Triple-Strings in Anführungszeichen:

r"""what"ever""" 
7

Wenn Sie irgendeine Art des Zitierens (Einzel-, Doppel- und Dreifach für beide) benötigen Sie können "kombinieren" (0), um die Saiten:

>>> raw_string_with_quotes = r'double"' r"single'" r'''double triple""" ''' r"""single triple''' """ 
>>> print raw_string_with_quotes 
double"single'double triple""" single triple''' 

Sie können auch "kombinieren" (0) rohe Strings mit nicht roh Strings:

>>> r'raw_string\n' 'non-raw string\n' 
'raw_string\\nnon-raw string\n' 

(0): Tatsächlich verbindet der Python-Parser die Zeichenfolgen, er erstellt nicht mehrere Zeichenfolgen. Wenn Sie den Operator "+" hinzufügen, werden mehrere Zeichenfolgen erstellt und kombiniert.

-2
dqote='"' 
sqote="'" 

Verwendung der Operator '+' und dqote und squote Variablen zu bekommen, was Sie

brauchen, wenn ich sed -e s/",u'"/",'"/g -e s/^"u'"/"'"/ möchten, können Sie die folgende

dqote='"' 
sqote="'" 
cmd1="sed -e s/"+dqote+",u'"+dqote+"/"+dqote+",'"+dqote+'/g -e s/^"u'+sqote+dqote+'/'+dqote+sqote+dqote+'/' 
Verwandte Themen