[Python-de] Regulärer Ausdrücke

Stefan J. Betz stefan_betz at gmx.net
Sam Jan 3 14:55:20 CET 2004


Hallo Liste,

ich habe ein Programm in dem ich prüfen will ob ein übergebener Paramter
eine IP ist, ich habe das "Problem" zwar gelöst, aber dennoch frage ich
mich warum die RE:
"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"

Nicht Funktioniert, aber die RE:
"^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"

funktioniert einwandrei!

Gestestet habe ich das mit folgendem Miniprogramm:
import re

ipre = re.compile("[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}")
ipre.match("127.0.0.1")
<SRE_Match object at 0x81311b8>#, das ist ja nicht weiter schlimm...
#aber:
ipre.match("127.0.0.1156489489")
<SRE_Match object at 0x8110838># Ist schon nichtmehr so toll, weil die
#IP ja ungültig ist :-(

Mit der zweiten RE von oben funktioniert es aber, spielt das "erfassen"
von Stringanfang und Stringende wirklich eine so große Rolle?

mfg Betz Stefan
-- 
Das Telefonnetz... Unendliche Weiten... Dies sind die Abenteuer eines
genervten Internet-Surfers... Weit von zu Hause entfernt stößt er in
Bereiche des Systems vor, die vorher noch niemand gesehen hat...
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde geschreddert...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 248 bytes
Beschreibung: nicht verfügbar
URL         : http://starship.python.net/pipermail/python-de/attachments/20040103/722a7689/attachment.pgp