2016-07-18 14 views
0

Sagen wir, ichWie finde ich Anführungszeichen in Strings - Python

temp = 'I need to "leave" this place' 

Wie würde ich in der Lage sein zu verwenden temp.index() zu finden, wo die Anführungszeichen („“) beginnen und enden einen String-Variable ?

+1

'temp.index ('' ')' oder 'temp.index (" \ "") '. – Maroun

+0

Sie können '\' auch als Escape verwenden: 'temp.index ('\' ')' –

+1

oder regex '". *? "': D – dnit13

Antwort

0

Ich würde die find Methode verwenden.

start_pt = temp.find("\"") 
end_pt = temp.find("\"", start + 1) # add one to skip the opening " 
quote = temp[start_pt + 1: end_pt + 1] # add one to get the quote excluding the "" 

>>> print start_pt, end_pt, quote 
10, 16, 'leave' 
0

Hinweis: Wie in der anderen Antwort sagte, würde ich Ihnen raten, die find(substring) Funktion zu verwenden. Nach meinem Wissen funktionieren index und find gleich gut, aber wenn Sie index(substring) verwenden, müssen Sie die mögliche ValueError Ausnahme behandeln, wenn substring nicht gefunden wird.

So zu finden, wo die Anführungszeichen beginnen und enden, würden Sie folgendes tun:

Zuerst finden, wo das erste Zitat (dh wo die Zitate beginnen) ist:

startIndex = temp.find('\"') 

Jetzt brauchen wir um zu wissen, ob die Zeichenfolge überhaupt ein Zitat hatte. Die find(substring) Funktion gibt -1 zurück, wenn substring nicht gefunden wird. Wenn substring gefunden wurde, dann suchen wir den Index des zweiten Zitats. Wenn dieses zweite Zitat gefunden wird, dann lassen Sie die Anfangs- und Endindizes der Anführungszeichen ausdrucken.

if startIndex != -1: #i.e. if the first quote was found 
     endIndex = temp.find('\"', startIndex + 1) 
     if startIndex != -1 and endIndex != -1: #i.e. both quotes were found 
      print 'Start: ' + str(startIndex) 
      print 'End: ' + str(endIndex) 
Verwandte Themen