2017-03-16 10 views
0

zB '"Hallo Wort" = "Hallo Welt"; "," "Hallo = Wort" = "Hallo = Wort"', finde die Mitte des "=" Position von Python. Ich versuche, diesepython finde die Mitte von "=" index in string

>>>line = '"Hello=Word" = "Hello=Word"' 
>>>index = line.index("=") 
>>> index 
6 

ich es 13

+0

Das erste '=' ist auf Position 6 ... –

+2

Was genau ist die Logik hier? Willst du das 2. Vorkommen von "="? Der in der Mitte? Wenn ja, was ist, wenn es eine gerade Zahl gibt? Oder möchten Sie vielleicht die erste finden, die nicht in Anführungszeichen eingeschlossen ist? Es gibt ein Dutzend Möglichkeiten, dies zu tun, aber die Frage ist, welches ist am besten geeignet. –

+0

Bitte werfen Sie einen Blick auf diese http://stackoverflow.com/questions/11122291/python-find-char-in-string-can-i-get-all-indexes – MaxLunar

Antwort

1

Wahrscheinlich ein Fall für die Verwendung von regulären Ausdrücken Rückkehr erwarten.

import re 
re.search(r'^".*".*(=).*".*"$', line).start(1) 

Diese die Zeichenfolge übernimmt von der Form von Ihnen angegebenen, mit doppelten Anführungszeichen " begrenzten Zeichenfolgen auf beiden Seiten eines =.

1

Eigentlich können Sie auch alle Vorkommen von = in Zeichenfolge über enumerate(line) suchen. Es gibt Ihnen ein Objekt enumerate zurück, das iterierbar ist und Tupel mit Format (Index, Element) enthält. Also, das kann so verwendet werden:

>>> occurrences = [x[0] for x in enumerate(line) if x[1] == '='] 
>>> occurrences 
[6, 13, 21] 

Jetzt sollten Sie den Index auswählen, den Sie brauchen.

Verwandte Themen