Portal > Foren > PHP > PHP-Programmierung > Und nochmal die RegExen ;)
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 14.02.2007, 15:39 Nach oben    #1
-Antichrist.Superstar-
 
Benutzerbild von the_cRu
 
Registriert seit: 07.02.2007
Ort: .sH!
Beiträge: 29
Standard Und nochmal die RegExen ;)

hey ihr,
ich muss nochmal stören. ich habe nun noch eine zusätzliche seite, die ich gerne auslesen möchte. nur dort ist ein klitzekleines problemchen.

hier der code:
HTML-Code:
<table class="table" width="420" border="0" cellspacing="1" cellpadding="3">
  <tr> 
    <td colspan="2"><b>Insel</b></td>
  </tr>
  <tr> 
    <td width="50%"><b>Name</b></td>
    <td>DerName!</td>
  </tr>
  <tr> 
    <td><b>Koordinaten</b></td>
    <td>42:35:21</td>
  </tr>
  <tr> 
    <td><b>Herrscher</b></td>
    <td><a href="www.link-entfernt.de">suicide-iNc</a></td>
  </tr>
  <tr> 
    <td colspan="2"></td>
  </tr>
</table> 
ich war ja nicht untätig nach dem mein thread größere außmaße angenommen hat.

mit dem regex kann ich zumindest den den inselnamen und die koordinaten auslesen:

Code:
<td>*([0-9a-zA-Z].*)<\/td>
und mit dem den namen des besitzers:
Code:
<td><a href=".+">(.+)<\/a>
mein problem ist, das ich gerne das ganze in einem ausdruck hätte.
nur weiß ich nicht wie ich genau das machen kann, da ja mal nen <b> oder ein <a href=""> nach dem <td> ist und mal nicht...

hab scho die seiten abgeklappert, aber irgendwie nichts gefunden.

hab auch schon mit lookahead-assertion rumgespielt,
doch leider kein erfolg...

LG

Geändert von the_cRu (14.02.2007 um 15:54 Uhr)
the_cRu ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2007, 16:32 Nach oben    #2
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 597
Standard

Ist der Link immer in der selben Schreibweise ?

EDIT:
Ansonsten auf die Schnelle beim Kaffee trinken:
'~<b>Name</b></td>\s*<td>(.*?)</td>.*?<a href=[\'\"]([^>]+)[\'\"]>(.*?)</a>~is'

Geändert von CIX88 (14.02.2007 um 16:34 Uhr)
CIX88 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2007, 16:47 Nach oben    #3
-Antichrist.Superstar-
 
Benutzerbild von the_cRu
 
Registriert seit: 07.02.2007
Ort: .sH!
Beiträge: 29
Standard

Zitat:
Zitat von CIX88 Beitrag anzeigen
Ist der Link immer in der selben Schreibweise ?

EDIT:
Ansonsten auf die Schnelle beim Kaffee trinken:
'~<b>Name</b></td>\s*<td>(.*?)</td>.*?<a href=[\'\"]([^>]+)[\'\"]>(.*?)</a>~is'
nein,
der ändert sich ständig...
aber den kann man ja umgehen. das weiß ich ja auch

der regex geht nit. hab inzwischen au scho mit bedingungen gespielt,
klappte aber auch nicht...
the_cRu ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2007, 16:56 Nach oben    #4
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 597
Standard

Ok, aber ich gehe mal davon aus, dass
Code:
<b>Name</b>
immer gleich ist, denn dies wäre jetzt der Startpunkt für den gesamten Suchpattern (oder DAS Suchpattern?, egal).

Der Versuch:
http://www.regex-tester.de/regex4_20070214165411.html
CIX88 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2007, 17:00 Nach oben    #5
-Antichrist.Superstar-
 
Benutzerbild von the_cRu
 
Registriert seit: 07.02.2007
Ort: .sH!
Beiträge: 29
Standard

japp, das bleibt gleich...
bei deinem beispiel werden aber z.b. die koordinaten net ausgelesen,
sondern dort wird der link reingesetzt *fg
the_cRu ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2007, 17:06 Nach oben    #6
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 597
Standard

Zitat:
die koordinaten net ausgelesen
achso, das hab ich vergessen
CIX88 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2007, 17:37 Nach oben    #7
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 597
Standard

Also das ist nur ein Ansatz:

PHP-Code:
'~<b>\s*Name\s*</b>\s*</td>\s*<td>\s*(.*?)\s*</td>
.*?
<b>\s*Koordinaten\s*</b>\s*</td>\s*<td>\s*(.*?)\s*</td>
.*?
<b>\s*Herrscher\s*</b>\s*</td>\s*<td>\s*<a.*?href=[\'\"]?([^>]+)[\'\"]?.*?>(.*?)</a>\s*</td>~isx' 
CIX88 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2007, 18:00 Nach oben    #8
-Antichrist.Superstar-
 
Benutzerbild von the_cRu
 
Registriert seit: 07.02.2007
Ort: .sH!
Beiträge: 29
Standard

Zitat:
Zitat von CIX88 Beitrag anzeigen
Also das ist nur ein Ansatz:

PHP-Code:
'~<b>\s*Name\s*</b>\s*</td>\s*<td>\s*(.*?)\s*</td>
.*?
<b>\s*Koordinaten\s*</b>\s*</td>\s*<td>\s*(.*?)\s*</td>
.*?
<b>\s*Herrscher\s*</b>\s*</td>\s*<td>\s*<a.*?href=[\'\"]?([^>]+)[\'\"]?.*?>(.*?)</a>\s*</td>~isx' 
in dem sinne ist das ja der gleiche ansatz wie bei mir,
nur mit deinem regex bekomme ich auch nicht alle strings auf mal, bzw. der gibt mir nen fehler aus.

gibt es denn ne möglichkeit zwei suchkriterien, sei es z.b.

<b>\s*Name\s*</b>\s*</td>\s*<td>\s*(.*?)\s*</td>

und

<b>\s*Koordinaten\s*</b>\s*</td>\s*<td>\s*(.*?)\s*</td>

miteinander zu verknüpfen?
the_cRu ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2007, 18:42 Nach oben    #9
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 597
Standard

Najaaaaaa, würde vielleicht gehen, allerdings wird das ganze dann recht lang und zu komplex.
CIX88 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2007, 19:04 Nach oben    #10
-Antichrist.Superstar-
 
Benutzerbild von the_cRu
 
Registriert seit: 07.02.2007
Ort: .sH!
Beiträge: 29
Standard

Zitat:
Zitat von CIX88 Beitrag anzeigen
Najaaaaaa, würde vielleicht gehen, allerdings wird das ganze dann recht lang und zu komplex.
entweder so, oder ich muss die abfrage später dann zweimal tätigen.
einmal für den den inselnamen & koordinaten und einmal für den namen selber.
finde die methode mit "alles auf mal" besser, weil ich es übersichtlicher finde.
the_cRu ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2007, 19:07 Nach oben    #11
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 597
Standard

Zitat:
bekomme ich auch nicht alle strings auf mal
Rückfrage:
Wie war das gemeint ?

Also ich bin (logisch) jetzt nur von dem ausgegangen, was oben als Beispielcode steht.
CIX88 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2007, 19:35 Nach oben    #12
-Antichrist.Superstar-
 
Benutzerbild von the_cRu
 
Registriert seit: 07.02.2007
Ort: .sH!
Beiträge: 29
Standard

Zitat:
Zitat von CIX88 Beitrag anzeigen
Zitat:
bekomme ich auch nicht alle strings auf mal
Rückfrage:
Wie war das gemeint ?

Also ich bin (logisch) jetzt nur von dem ausgegangen, was oben als Beispielcode steht.
ja
wenn ich es getrennt auslese,
bekomme ich ja die arrays[0] und nen arrays[1].
wenn ich dann nun dann noch extra den namen "suchen" muss, wird das ja wieder als array[0] gespeichert.

und das find ich nicht so prall. hätte die drei werte lieber so:

array[0]
array[1]
array[2]
the_cRu ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2007, 21:01 Nach oben    #13
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 597
Standard

achsooo, naja in welcher Form das letztlich im Array steht, sehe ich jetzt nicht so störend.
Vielleicht hilft es dir ja weiter mit dem Flag PREG_SET_ORDER.
Zusätzlich kannste du auch array['name'] ausgeben lassen.
Stichwort: Namentliche Bezeichnungen
Beispiel: http://www.regex-tester.de/bs4_20070...ichnungen.html
CIX88 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2007, 22:47 Nach oben    #14
-Antichrist.Superstar-
 
Benutzerbild von the_cRu
 
Registriert seit: 07.02.2007
Ort: .sH!
Beiträge: 29
Standard

Zitat:
Zitat von CIX88 Beitrag anzeigen
achsooo, naja in welcher Form das letztlich im Array steht, sehe ich jetzt nicht so störend.
Vielleicht hilft es dir ja weiter mit dem Flag PREG_SET_ORDER.
Zusätzlich kannste du auch array['name'] ausgeben lassen.
Stichwort: Namentliche Bezeichnungen
Beispiel: http://www.regex-tester.de/bs4_20070...ichnungen.html
danke, werd mich mal damit auseinandersetzen.

hm, irgendwie bin ich immer noch zu doof dazu.
wüsste net wie ich des mit den namentlichen bezeichnungen umsetzen könnte...

so, nach x versuchen hab ichs nun doch hinbekommen.
sieht recht lang und chaotisch aus:

Code:
<b>\s*Name\s*</b>\s*</td>\s*<td>\s*(.*?)\s*</td>\s*</tr>\s*<tr>\s*<td>\s*<b>\s*Koordinaten\s*</b>\s*</td>\s*<td>\s*(.*?)\s*</td>\s*</tr>\s*<tr>\s*<td>\s*<b>\s*Herrscher\s*</b>\s*</td>\s*<td>\s*<a href=".+">\s*(.*?)\s*</a>\s*</td>

Geändert von the_cRu (14.02.2007 um 23:20 Uhr)
the_cRu ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45