re.sub

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
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Hallo,

ich will mit re.sub in einem String nur das erste Element ersetzen.

zB:

Code: Alles auswählen

url = http://www.bsp.com/www.php

regexp_www = re.compile('www[\.]', re.I)
if re.match(regexp_www, url[7:11]):
    re.sub(regexp_www, '', url)
Damit will ich bei vorhandenem www das www entfernen, eben nur das vorangestellte und nicht ein evtl. in der restl. url Vorkommendes... Bei diesem Beispiel erhalte ich ja http://bsp.com/php und nicht http://bsp.com/www.php

Danke!
MfG
lunar

Du solltest dir die Doku zum re-Modul nochmal durchlesen und lernen, wie man in Strings escaped!

Code: Alles auswählen

import re
from urlparse import urlsplit, urlunsplit

url = urlsplit('http://www.example.com/www.php')
netloc = re.sub(r'^www\.', '', url.netloc, re.I)
print urlunsplit((url.scheme, netloc, url.url, url.query, url.fragment))
BlackJack

Das versagt natürlich bei solchen URLs: 'http://name:secret@www.bsp.com/www.php'. Aber irgendwas ist ja immer. :-)
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

danke für die Hilfe...

eine Frage: der Unterschied zwischen netloc und hostname bei urlparse...
Konnte bisher keinen Unterschied feststellen...
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

SchneiderWeisse hat geschrieben:ich will mit re.sub in einem String nur das erste Element ersetzen.
Der dritte (optionale) Parameter von `sub` definiert, wie oft ersetzt wird.

Stefan
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

SchneiderWeisse hat geschrieben:eine Frage: der Unterschied zwischen netloc und hostname bei urlparse...
Konnte bisher keinen Unterschied feststellen...
Ich vermute, dass netloc "user:password@hostname" umfasst.
Antworten