regulärer Ausdruck, Variable in Platzhalter finden
Roger
- php
0 Cheatah0 Gunnar Bittersmann0 Roger
hallo!
Ich möchte aus einem Fließtext eine Art Platzhalter extrahieren der ungefähr so aussieht: %variable_1_2%
Das Problem daran: "1" und "2" ist veränderbar (Integerzahlen) und sie müssen in eine extra Variable gelesen werden. Mit regulären Ausdrücken kann man sicherlich den Platzhalter finden, aber wie kann ich die Zahlen in ihm auslesen?
gruß.
roger.
Hi,
Das Problem daran: "1" und "2" ist veränderbar (Integerzahlen) und sie müssen in eine extra Variable gelesen werden. Mit regulären Ausdrücken kann man sicherlich den Platzhalter finden, aber wie kann ich die Zahlen in ihm auslesen?
mit Zeichenklassen wie z.B. \d.
Cheatah
hallo!
mit Zeichenklassen wie z.B. \d.
Könntest du das evtl. etwas konkretisieren?
gruß.
roger.
Hi,
mit Zeichenklassen wie z.B. \d.
Könntest du das evtl. etwas konkretisieren?
ich wüsste nicht, wie ich noch konkreter werden könnte.
Cheatah
Hello out there!
aber wie kann ich die Zahlen in ihm auslesen?
http://de.selfhtml.org/javascript/objekte/regexp.htm#dollar_1_9@title=$[1..9 (geklammerte Unterausdrücke)], <http://de.selfhtml.org/perl/sprache/regexpr.htm#merken@title=Teilausdrücke merken mit Klammerung>
See ya up the road,
Gunnar
Hallo Gunnar.
aber wie kann ich die Zahlen in ihm auslesen?
http://de.selfhtml.org/javascript/objekte/regexp.htm#dollar_1_9@title=$[1..9 (geklammerte Unterausdrücke)],
Du bringst mich auf eine Idee, die ich nun prompt in meinem selfjs umgesetzt habe. („]“ im Linktitel → „]“)
Einen schönen Montag noch.
Gruß, Mathias
hallo!
Ich hab jetzt mal was zusammengekritzelt. Funktioniert. Sieht aber ziemlich n00bi aus, evtl. kann man da noch etwas optimieren (Vorschläge?):
<?php
$str = "lalala ala al al laa la %test_2351_252% lalalal slkdh sdl fsldkhf södkhf ";
preg_match('@(%test_)?([0-9]*)?(_)?([0-9]*)?(%)@', $str, $treffer);
echo $str."<hr>";
echo "Platzhalter: ".$treffer[0]."<br>";
echo "erste Zahl: ".$treffer[2]."<br>";
echo "zweite Zahl: ".$treffer[4]."<br>";
?>
gruß.
roger.