php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Regulärer Ausdruck


 
Mupfiklaus
18-08-2003, 15:10 
 
Hallo
Ich habe gesucht und habe nichts gefunden.
Ich brauche einen regulären Ausdruck, der von der ebay Artikel Seite das aktuelle Gebot ausliest. Es muss die erste Zahl nach dem ersten EUR nach Aktuelles Gebot gefunden werden. Ich hab keine Ahnung wie ich das machen soll. Hilfe!
mfg
Christian

 
TobiaZ
18-08-2003, 15:17 
 
Damit du bei der Sache auch etwas lernst: Siehe Tutorials.

 
Mupfiklaus
18-08-2003, 15:47 
 
Okay ich hab mal was zusammen geschustert
/^Aktuelles[ ]Gebot:.{60,90}<b>EUR[ ]D[,]D$/
Fängt mit Aktuelles Gebot: an, danach kommen 60-90 irgendwelche Zeichen, dann kommt <b>EUR, ein Leerzeichen, eine Zahl (?), ein Komma und noch eine Zahl. Dieses Gewurschtel kann doch gar nicht funktionieren. Nochmal Hilfe!
mfg
Christian

 
Mupfiklaus
18-08-2003, 15:50 
 
Das sieht bei ebay übrigens so aus:

<td valign="top" nowrap>
<font face="Arial" size="2">
Aktuelles Gebot:
</font>
</td>
<td width="100%">
<font face="Arial" size="2"><b>EUR 161,11<font face="Verdana" color="#666666" size="1"></font></b></font>
</td>

 
TobiaZ
18-08-2003, 16:06 
 
na, das hast du dir sicher nicht mit Hilfe des Tutorials erarbeitet.

 
Mupfiklaus
18-08-2003, 16:09 
 
Eigentlich schon. Ich hab nicht wirklich verstanden, wie ganze Strings geprüft werden. Ob da noch " oder sowas drum muss. Ich hab mal weiter probiert:
/^Aktuelles Gebot:.{60,90}<b>EUR \d+[,]+\d+$/m
Aber diese Variante geht immer noch nicht.

 
Mupfiklaus
18-08-2003, 16:15 
 
Eine Testoberfläche (mit gekürztem pattern):

<?php
$subject='<td valign="top" nowrap>
<font face="Arial" size="2">
Aktuelles Gebot:
</font>
</td>
<td width="100%">
<font face="Arial" size="2"><b>EUR 161,11<font face="Verdana" color="#666666" size="1"></font></b></font>
</td>
';
$pattern='/^<b>EUR[ ]+\\d+[,]+\\d+$/';
echo preg_match($pattern,$subject,$matches);
echo $matches;
?>

 
Mupfiklaus
18-08-2003, 16:47 
 
Da ist ja mein ausdruck:
/Aktuelles Gebot:.{67}<b>EUR ((\d+)\,(\d+))/s
Tschüß

 
TobiaZ
18-08-2003, 17:55 
 
Mit Verstand scheinst du es nicht gelesen zu haben! Ich glaube von deinem code ist nicht der geringste Teil sinnvoll!

Aber du hast dich ja zumindest annähernd bemüht. Versuch mal den Folgenden Code. Der wird dir sicher weiterhelfen.

<?
$subject='<td valign="top" nowrap>
<font face="Arial" size="2">
Aktuelles Gebot:
</font>
</td>
<td width="100%">
<font face="Arial" size="2"><b>EUR 161,11<font face="Verdana" color="#666666" size="1"></font></b></font>
</td>
';
$pattern='/EUR(.*)</';
if(preg_match($pattern,$subject,$matches))
print_r($matches);
else
echo "Leider nicht gefunden";
?>

 
roobin
18-08-2003, 22:31 
 
naja, Arroganz scheinst Du auch mit dem Löffel gegessen zu haben...

 
TobiaZ
18-08-2003, 22:40 
 
Da hilft man mal :rolleyes:


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:47 Uhr.