2016-04-13 7 views
0

Ich versuche, eine Zeichenfolge in Python mithilfe der Formatmethode erstellen, aber eines der Argumente ist ein regulärer Ausdruck. Ich habe versucht:Format Zeichenfolge mit Regex in Args in Python

>>> 'foo{}bar'.format('[\s]+') 
'foo[\\s]+bar' 

Wegen der Entkommen, ich kann nicht das Ergebnis als re.search Muster verwenden. Gibt es einen Weg, dem nicht zu entkommen?

Danke.

+0

Ich denke, Sie können es verwenden. Das '' \\ '' ist eigentlich 1 '' \ ''. –

+0

@ WiktorStribiżew, die dazu führen würde, dass es ein '\' und ein 's' statt ein Leerzeichen entspricht. –

+1

Siehe [diese Demo] (http://ideone.com/6MyBCs) –

Antwort

2

In der Tat müssen Sie nichts tun, weil das Ergebnis ist, was Sie erwarten. foo[\\s]+bar ist die Darstellung, aber nicht der reale Wert, der foo[\s]+bar ist. Versuchen Sie Folgendes:

>> print 'foo{}bar'.format('[\s]+') 
# and you will get 
>> 'foo[\s]+bar'