Hallo,
ich habe re.compile() in Verbindung mit findeall() zusammen gebracht um eine einzelnen Link aus einer html Seite herauszufinde. Das ganze hat gut geklappt nun hab ich aber das Problem, das mir der Link so ausgegeben wird.
['http://.......']
um die Ausgabe aber weiter Verarbeiten zu können muss ich die "[" und "]" wegbekommen. Wie kann ich das am besten machen ?
PS. Ich bin noch Anfänger mit Python.
Gruß DoubleU
Ausgabe von re.compile bearbeiten.
Hallo,
dann bist du ja schon kurz vorm Ziel.
Dann musst du nun vermutlich nur noch die Liste auswerten, worauf auch die eckigen Klammern hindeuten.
Sollte so funktionieren.
Gruß
Markus
P.S.: Ich bin auch noch Anfänger.
dann bist du ja schon kurz vorm Ziel.
Return a list of all non-overlapping matches of pattern in string. If one or more groups are present in the pattern, return a list of groups; this will be a list of tuples if the pattern has more than one group. Empty matches are included in the result unless they touch the beginning of another match. New in version 1.5.2. Changed in version 2.4: Added the optional flags argument.
http://docs.python.org/lib/node46.html
Dann musst du nun vermutlich nur noch die Liste auswerten, worauf auch die eckigen Klammern hindeuten.
Code: Alles auswählen
resultList = compiledExpression.findall(pattern, string)
for i in len(resultList):
print resultList
Gruß
Markus
P.S.: Ich bin auch noch Anfänger.
Danke schonmal für den Tipp, hab dass nun mal so auf mein Script angewendet:
bekomme aber so noch diesen Fehler:
Gruß DoubleU
Code: Alles auswählen
resultList = re.compile(line).findall(ol.read())
for i in len(resultList):
print resultList
for i in len(resultList):
TypeError: 'int' object is not iterable
Gruß DoubleU
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Das ist auch Unsinn.
Code: Alles auswählen
for match in resultList:
print match
Und falls wirklich nur eine URL gefunden werden soll, ist `search()` vielleicht ein wenig geeigneter als `findall()`.
Hallo,
die Zeilen von veers haben gut Funktioniert. Ich habe auch noch eine andere Möglichkeit gefunden, indem ich mir einfach das erste Ergebniss der Array mit dem anhängen von "[0]" an das Ende der obigen Befehlszeile anhänge.
@BlackJack
Danke, werde ich mir vielleicht nächstesmal einbisschen besser in den Referenzen anschauen, da ich aber das re.compile schon so geschrieben habe, dass es mir nur noch ein Ergebniss liefert konnte ich es auch gut voll mit findall() umsetzen.
Gruß DoubleU
die Zeilen von veers haben gut Funktioniert. Ich habe auch noch eine andere Möglichkeit gefunden, indem ich mir einfach das erste Ergebniss der Array mit dem anhängen von "[0]" an das Ende der obigen Befehlszeile anhänge.
@BlackJack
Danke, werde ich mir vielleicht nächstesmal einbisschen besser in den Referenzen anschauen, da ich aber das re.compile schon so geschrieben habe, dass es mir nur noch ein Ergebniss liefert konnte ich es auch gut voll mit findall() umsetzen.
Gruß DoubleU
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Das ist doch einerlei. Ob die RE nun ein oder mehrere Ergebnisse liefert, ist search() immer die geeignetste Funktion, wenn man nur am ersten Match interessiert ist.
Wie müsste es dann mit search() aussehen, wenn ich nur das erste match will ?
P.S. Muss ich den Thread irgendwie als gelöst markieren, wenn sich die Frage geklärt hat ?
Gruß DoubleU
P.S. Muss ich den Thread irgendwie als gelöst markieren, wenn sich die Frage geklärt hat ?
Gruß DoubleU
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
DoubleU hat geschrieben:Wie müsste es dann mit search() aussehen, wenn ich nur das erste match will ?
Code: Alles auswählen
>>> import re
>>> match = re.search(r'abc', 'abcdef')
>>> match.group()
'abc'
Nein.DoubleU hat geschrieben:P.S. Muss ich den Thread irgendwie als gelöst markieren, wenn sich die Frage geklärt hat ?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
search() liefert dir *nur* den ersten Match.DoubleU hat geschrieben:Wie müsste es dann mit search() aussehen, wenn ich nur das erste match will ?
-
- User
- Beiträge: 188
- Registriert: Donnerstag 20. Juli 2006, 20:46
- Wohnort: Wien
- Kontaktdaten:
Eventuell was für irgend nen Sticky Thread (jaja die liest niemand, ich bin der einzige, ich weiß eh)Leonidas hat geschrieben:Nein.DoubleU hat geschrieben: P.S. Muss ich den Thread irgendwie als gelöst markieren, wenn sich die Frage geklärt hat ?
lgherby
p.s. ich war mir da am anfang auch unsicher ob das markiert werden sollte