re.search Funktion: Abgrenzung mit . ?

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.
Antworten
_corn_
User
Beiträge: 27
Registriert: Montag 8. November 2021, 09:04

Moin Zusammen,
ich habe eine IP-Adresse vorliegen und möchte diese Klassifizieren. Dafür benötige ich nur den ersten Teil der IP-Adresse. Diese will ich per re.search herausfinden.

Code: Alles auswählen

string = "123.21.231.2"
found= re.search('(.+?).', string).group(1)
print(found)
Leider funktioniert das nicht so ganz: wenn ich .2 eingebe, funktoniert es. Oder wenn ich "123b21.231.2" und dann b eingebe funktioniert es, jedoch nicht alleine durch einen Punkt. Wie kann ich das ändern oder wie muss ich das alternativ machen
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Den Punkt mit einem davor gestellten \ zu einem „echten“ Punkt machen. String Escape Regeln beachten.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Statt da mit regulären Ausdrücken drauf los zu gehen, benutze ein Paket, das dafür extra geschrieben worden ist:

Code: Alles auswählen

import ipaddress
address = ipaddress.IPv4Address('123.21.231.2')
address.packed[0]
Benutzeravatar
__blackjack__
User
Beiträge: 13080
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Und selbst wenn man das mit Zeichenkettenoperationen machen will, würde man vielleicht nicht gleich mit regulären Ausdrücken darauf losgehen um etwas am ersten Punkt zu trennen:

Code: Alles auswählen

In [4]: "123.21.231.2".partition(".")                                           
Out[4]: ('123', '.', '21.231.2')
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
_corn_
User
Beiträge: 27
Registriert: Montag 8. November 2021, 09:04

Danke an alle :D
Antworten