2017-07-07 1 views
0

Ich muss das letzte Vorkommen einer IP-Adresse in einer Zeichenfolge mit Regex finden. Ich fand diesePython Regax Suche

addr = re.search(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', program[line]) 

, die das erste Vorkommen findet. Wie kann ich es ändern, um das letzte zu finden?

+0

Dies ist kein Duplikat dieser beiden Fragen. Zum OP: Wenn das nicht doppelt markiert war, könnte ich dir eine ausführliche Erklärung geben. Die definitive Antwort ist '. * (\ D {1,3} \. \ D {1,3} \. \ D {1,3} \. \ D {1,3})' wo die IP im Capture ist Gruppe 1. Also, 'if ((= Übereinstimmung = re.search (r '. * (\ d {1,3} \. \ d {1,3} \. \ d {1,3} \. \ d { 1,3}) ', program [line])) ip = match.group (1) ' – sln

Antwort

1
re.findall(pattern, string)[-1] 
+0

Ich habe das versucht, aber ich bekomme nur einen Fehler, weil der Index außerhalb des Bereichs liegt ... edit: findall gibt nur ein Leerzeichen zurück Liste aus irgendeinem Grund, und daher die [-1] ist außerhalb der Reichweite ... –

+0

@DinaGurevich, das heißt, es gab keine Übereinstimmungen. –