reg. expr. suchen

METATR0N

Grünschnabel
hallo,

ich habe folgendes problem:
ich habe einen string '<tagname param0="unterschiedlichlangername.xyz" param1="irgendwas">'

aus diesem string will ich dass der WERT von param1 gefunden wird(hier 'irgendwas').
leider hat param0 keine feste länge, so dass ich es nicht substr'n kann.

ich weiss auch nicht vorher welchen wert param1 hat, der kann 'irgendwas','gar','nix'... sein.

Ansatz:
ich wollte z.B. nach 'param1="'***'"' suchen und dieses zurückgeben,
ähnlich wie z.b. bbencode funktionen, bekomme es aber nicht auffe reihe.

Bitte helft mir,

metatron
 
ok das ist schon ein prima tipp, löst aber nicht mein grundproblem:

da ich mehrere solcher suchen ausführen muss welche nicht immer HTMLstrings sind lässt sich meine frage vielleicht auf folgendes reduzieren:

wenn anfangsstring und endstring definiert sind, wie kann ich mir den mittelteil ausgeben lassen? OHNE strpos, sondern MIT regexpr.
 
-

$text = ' <tagname param0="unterschiedlichlangername.xyz" param1="irgendwas">';
preg_match_all("=param1\=\"(.*)\"=siU", $text, $a);
print $a[1][0];
//Ausgabe = irgendwas

Sorry, aber das Board zerhaut immer Reg Exp.
So ist das richtig.

Kurze Erklärung:
"param1=" ist der Anfangsstring, wonach gesucht wird. (.*) matched alle Zeichen, wobei nicht auf Groß- und Kleinschreibung geachtet wird. Endstring ist ", welches durch einen Backslash gekennzeichnet wird. Dein Ergebnis steht dann im Array $a.
 
Zuletzt bearbeitet:
perfekt!

funktioniert genauso, wie ich mir das vorgestellt habe!

Vielen Dank! Beide Antworten haben mir sehr geholfen!

METATR0N :-)
 
möcht mich mal mit reinhängen, und ne frage loswerden: $a ist ein array, hab ich ja nun mitbekommen, [0] ist wahrscheinlich der erste treffer von param1=... aber wofür steht das [1]. Ist $a ein mehrebenes array?



ok frage erledigt, habs allein rausgefunden, die [1] steht für die erste klammer aus dem regulären ausdruck, (.*) also. wenn ich [0] einsetze kommt "param1=" kewl :) so einfach hätte ich mir das nicht vorgestellt :]
 
Zuletzt bearbeitet:
Zurück