re - problem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Gast

re - problem

Beitragvon Gast » Dienstag 19. August 2003, 23:20

Hi ,
ich bin am verzweifeln was mach ich bei falsch , warum funktioniert
das nicht eigentlich müsste er doch die gefundenen groups ausgeben.

import re
def extract():
proxy_list = "blabla199.105.122.121as"

pattern=re.compile(r'^(\d{2,3})\.(\d{2,3})\.(\d{2,3})\.(\d{2,3})$')
match = pattern.search(proxy_list).groups()
print match
Fehler Meldung ist "NoneType " object has no attribute "groups"
Das ganze soll also aus einer liste die ips raussuchen ...
Bin für jede Hilfe Dankbar
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Re: re - problem

Beitragvon Voges » Mittwoch 20. August 2003, 07:09

Hallo!
Anonymous hat geschrieben: proxy_list = "blabla199.105.122.121as"
pattern=re.compile(r'^(\d{2,3})\.(\d{2,3})\.(\d{2,3})\.(\d{2,3})$')

Mit ^ und $ hast Du festgelegt, dass der String zwingend mit \d anfangen und aufhören muss. Tut Dein Beispiel-String aber nicht.
Jan
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

re-Problem

Beitragvon HarryH » Donnerstag 21. August 2003, 11:32

Hallo

Versuch es mal mit:


Code: Alles auswählen

proxy_list = "blabla199.105.122.121as"
print re.findall("[\d{3}\.?]{15}",proxy_list)


Harry
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Re: re-Problem

Beitragvon Voges » Donnerstag 21. August 2003, 11:51

Hallo!
HarryH hat geschrieben:

Code: Alles auswählen

print re.findall("[\d{3}\.?]{15}",proxy_list)
Na, das ist aber ziemlich verquer. Der OP will ja wohl IPs erkennen, deren Zahlen 2- oder 3-stellig sein dürfen. Mit [] bildest Du nur eine Zeichenmenge, und die besteht bei Dir aus den Zeichen '0' bis '9', '{', '}', '.' und '?'. Danach enthielten "blabla?...?{{???}}???as" und "blabla...23..23..4...as" also gültige IPs, "blabla123.123.12.12as" dagegen nicht.

Der Regexp des OPs war ja ok. Er muss nur eben ^ und $ weglassen.

Jan
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

re:Problem

Beitragvon HarryH » Donnerstag 21. August 2003, 13:26

Hallo Jan

Du hattest wirklich recht! Das war nicht besonders gut überlegt von mir.

Harry
Qbi
User
Beiträge: 57
Registriert: Mittwoch 25. Juni 2003, 14:04
Kontaktdaten:

Re: re - problem

Beitragvon Qbi » Donnerstag 21. August 2003, 16:03

Anonymous hat geschrieben: proxy_list = "blabla199.105.122.121as"
pattern=re.compile(r'^(\d{2,3})\.(\d{2,3})\.(\d{2,3})\.(\d{2,3})$')


Eine einfache Methode, um IP-Adressen zu erkennen, ist:

Code: Alles auswählen

\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

Wenn alle deine Beispiele wie oben sind, sollte das relativ gut passen. Muss du wirklich genau die IP-Adressen erkennen, müsste hier noch etwas nachbessern.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]