Seite 1 von 1
Alles nach "irgendwas" bis "irgendwas" p
Verfasst: Donnerstag 9. Juli 2009, 19:13
von krisi12345
HI!
Ich habe eine Frage:
Wenn Ich einen String habe bzw. eine geöffnete Datei.
Dieser String könnte mehrzeilig sein. Und wie kann man das innere von diesem String z.B. "anfang hier das innere ende" anzeigen?
Danke im Voraus.
Verfasst: Donnerstag 9. Juli 2009, 19:26
von ms4py
Ich vermute einfach mal, dass du einen Teilstring aus deinem String auschneiden willst. Wenn nicht, formulier deine Frage doch bitte mal in verständlichem deutsch
Teilstring ausschneiden geht so:
Verfasst: Donnerstag 9. Juli 2009, 19:29
von krisi12345
Hmm....
Das wäre ne Möglichkeit aber kann man das auch mit "Wörtern"?
Verfasst: Donnerstag 9. Juli 2009, 19:35
von ms4py
Code: Alles auswählen
>>> s.split()
['Hello', 'World!']
>>> s.split()[1] # 2.Wort des Strings
'World!'
Ist das eine Antwort auf deine Frage?!
Ansonsten formulier mal eine klare Problemstellung.
Langsam nervts...
Verfasst: Donnerstag 9. Juli 2009, 19:42
von krisi12345
Also in etwa wie in einer HTML Datei, z.B.:
Code: Alles auswählen
<title>hallo world</title>
/\
|
|
diesen Teil print'en
Verfasst: Donnerstag 9. Juli 2009, 19:48
von ms4py
Code: Alles auswählen
>>> s = '<title>hallo world</title>'
>>> s.lstrip('<title>').rstrip('</title>')
'hallo world'
Wenn du "richtiges" HTML verarbeiten willst, sollstest du dir einen HTML Parser anschauen, z.B.
http://pypi.python.org/pypi/BeautifulSoup/3.0.7a
Ansonsten geb endlich mal eine konkrete Problemstellung und nicht ein Beispiel.
Verfasst: Donnerstag 9. Juli 2009, 19:50
von krisi12345
Okay, Danke
Verfasst: Freitag 10. Juli 2009, 06:37
von rayo
Hi
Also vergiss lstrip und rstrip für diese Aufgabe gleich wieder. Bei diesen Funktionen wird nicht ein String zum wegschneiden übergeben sondern eine Menge von Zeichen. Das heisst es werden folgende Zeichen am Anfang/Ende vom String weggelöscht: <>eilt.
Code: Alles auswählen
>>> s = '<title>title ist hallo world</title>'
>>> s.lstrip('<title>').rstrip('</title>')
' ist hallo world'
Da wird also auch locker mehr weggelöscht als nur <title>.
Du könntest zum Beispiel s.find nehmen um die Position vom Start und Ende herauszufinden.
Code: Alles auswählen
start_pos = s.find('<title>')+len('<title>')
end_pos = s.find('</title>', start_pos)
print s[start_pos:end_pos]
Falls es aber mehr sein soll als das, verwende wie schon gesagt ein HTML-Scraper.
Gruss
Verfasst: Samstag 11. Juli 2009, 09:33
von sma
Verfasst: Samstag 11. Juli 2009, 21:07
von kame
Hallo sma
Kannst du nochmal erklären was re, r und s bedeuten?
Gruß kame
Verfasst: Samstag 11. Juli 2009, 21:20
von EyDu
kame hat geschrieben:Kannst du nochmal erklären was re, r und s bedeuten?
RTFM
Verfasst: Sonntag 12. Juli 2009, 02:23
von theliquidwave
~ Chris