2011-01-07 12 views

Respuesta

96

Si desea utilizar comillas dobles en las cadenas, pero no solo cotizaciones, sólo puede utilizar comillas simples como delimitador en su lugar:

r'what"ever' 

Si necesita ambos tipos de cotizaciones en la cadena, utilice un triple citado cadena:

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

Si desea incluir ambos tipos de cadenas de triples citado en la cadena (un caso extremadamente improbable), no puede hacerlo, y que tendrá que utilizar cadenas no primas con escapa.

+1

Excelente. Me llevó un segundo darme cuenta de que también podía hacer que las cadenas de comillas triples fueran crudas. – mpen

+3

Me gusta el último párrafo también ... esto fue exactamente lo que estaba tratando de descubrir. Las limitaciones de diferentes estilos de cotización. Estoy comparando la cadena cruda 'r' de Python "' y C# '@ "@ - cadena citada" 'y' "" "comillas triples" "" ' – mpen

+2

Python newb aquí, un poco confundido, no es' r'what " siempre "' un error de análisis ¿Querías decir 'r'what 'ever''? – nmr

7

Python tiene más de una manera de hacer cuerdas, la siguiente sintaxis de la cadena se permitirá utilizar comillas dobles:

'''what"ever''' 
+0

'' y 'quotes'' individual "" "" Las comillas dobles triples "" "' también funcionan. – mtrw

+0

Te perdiste la parte * cruda * de la pregunta. – mpen

+0

no se dio cuenta '' 'funcionó también, gracias – andrewm4894

2

No importa, la respuesta es primas cadenas de triples citado:

r"""what"ever""" 
7

Si necesita cualquier tipo de citar (individuales, dobles y triples para ambos) puede "combinar" (0) las cuerdas:

>>> 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''' 

también puede "combinar" (0) cuerdas primas con las cadenas no primas:

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

(0): De hecho, el analizador de Python se une a las cadenas, no crea múltiples cadenas. Si agrega el operador "+", se crean y combinan varias cadenas.

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

uso el signo '+' operador y dqote y squote variables para obtener lo que necesita

si quiero sed -e s/",u'"/",'"/g -e s/^"u'"/"'"/ puede probar la siguiente

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