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

re.sub

Beitragvon nemomuk » Freitag 12. September 2008, 10:12

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

Beitragvon lunar » Freitag 12. September 2008, 10:35

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

Beitragvon BlackJack » Freitag 12. September 2008, 10:41

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

Beitragvon nemomuk » Freitag 12. September 2008, 13:27

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

Re: re.sub

Beitragvon sma » Samstag 13. September 2008, 08:33

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

Beitragvon Y0Gi » Samstag 13. September 2008, 11:25

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.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder