Frage zu re Ausdruck

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
Benutzeravatar
Duff
User
Beiträge: 4
Registriert: Donnerstag 1. November 2007, 16:11

Donnerstag 1. November 2007, 19:39

Hallo,

ich habe eine Frage zu folgender Code-Zeile, die ich hier gefunden habe:

Code: Alles auswählen

links = re.findall('<a.*?href="((http|ftp)s?://.*?)".*?>(?uism)', html)
Wofür steht noch mal das (?uism)?

Danke.
D'OH
Daniel
BlackJack

Donnerstag 1. November 2007, 20:01

Das steht für Flags. Und an der falschen Stelle, es sollte vorne stehen.

http://docs.python.org/lib/re-syntax.html
Benutzeravatar
Duff
User
Beiträge: 4
Registriert: Donnerstag 1. November 2007, 16:11

Donnerstag 1. November 2007, 21:20

BlackJack hat geschrieben:Das steht für Flags. Und an der falschen Stelle, es sollte vorne stehen.

http://docs.python.org/lib/re-syntax.html
Ok,

ist das denn nun was python spezifisches?
Verstehe nämlich irgendwie nicht so genau, wofür das (?uism) nun steht.
D'OH
Daniel
rafael
User
Beiträge: 189
Registriert: Mittwoch 26. Juli 2006, 16:13

Donnerstag 1. November 2007, 21:40

Nein. Jeder Buchstabe ist ein Flag und hat seine eigene Bedeutung.
Benutzeravatar
Duff
User
Beiträge: 4
Registriert: Donnerstag 1. November 2007, 16:11

Donnerstag 1. November 2007, 21:47

Danke.

Fehlt nur noch eine Erklärung für das u in (?uism).

Wenn ich das ganze richtig verstehe, unterscheiden sich die regulären Ausdrücke von python ein wenig zu den "allgemeinen", wie in perl z.B.
D'OH
Daniel
rafael
User
Beiträge: 189
Registriert: Mittwoch 26. Juli 2006, 16:13

Donnerstag 1. November 2007, 22:07

Duff hat geschrieben:Danke.

Fehlt nur noch eine Erklärung für das u in (?uism).

Wenn ich das ganze richtig verstehe, unterscheiden sich die regulären Ausdrücke von python ein wenig zu den "allgemeinen", wie in perl z.B.
Es steht für Unicode. ;)
BlackJack

Freitag 2. November 2007, 00:49

Duff hat geschrieben:Wenn ich das ganze richtig verstehe, unterscheiden sich die regulären Ausdrücke von python ein wenig zu den "allgemeinen", wie in perl z.B.
Da könnte man genausogut sagen die regulären Ausdrücke von Perl unterscheiden sich von den "allgemeinen" wie in Python zum Beispiel. Oder in sed, oder awk, oder Java, oder… Ausser in den wirklich grundlegenden Sachen unterscheiden die sich alle ein kleines bisschen.
Benutzeravatar
Duff
User
Beiträge: 4
Registriert: Donnerstag 1. November 2007, 16:11

Freitag 2. November 2007, 17:06

BlackJack hat geschrieben:
Duff hat geschrieben:Wenn ich das ganze richtig verstehe, unterscheiden sich die regulären Ausdrücke von python ein wenig zu den "allgemeinen", wie in perl z.B.
Da könnte man genausogut sagen die regulären Ausdrücke von Perl unterscheiden sich von den "allgemeinen" wie in Python zum Beispiel. Oder in sed, oder awk, oder Java, oder… Ausser in den wirklich grundlegenden Sachen unterscheiden die sich alle ein kleines bisschen.
Ok, ich kenne eigentlich eher die von sed, awk, perl. In Java gibt es ja noch erweiterungen, wie es sie vielleicht auch in python gibt.
D'OH
Daniel
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 2. November 2007, 18:48

Hallo Duff, willkommen im Forum,

Zu erwähnen ist noch, das man in Python die Flags seltener direkt in Regulären Ausdruck sondern stattdessen meist als Parameter für `re.compile()` mitgibt. Das hat auch den Vorteil, dass man die langen Flag-Namen wie DOTALL etc. verwenden kann, welche die Lesbarkeit steigern und Fragen die diese grade eben von selbst beantworten :)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten