FreaX: Regulärer ausdruch grefit nicht?!

Beitrag lesen

Das war aus deinem Originalposting. Es ist richtig, dass dieses Forum hier [ code] selbst verwendet und deshalb ein Problem damit hat, wenn das jemand als Inhalt verwenden will und nicht nur zur Code-Auszeichnung. Außerdem gibt es keine Möglichkeit der Maskierung, so dass keine Interpretation stattfindet (hat mir grad eben der Entwickler bestätigt). Man kann lediglich ein Leerzeichen oder ähnliches zwischen [ und code scheiben. Aber wenn du in die Antwort-Textarea in den zitierten Text schaust, da steht das vom Poster geschriebene Original unverändert (geht natürlich nicht mehr, wenn das später Posting im Archiv gelandet ist). Wie dem auch sei ...

Ok, hier schonmal danke für deine ganze Hilfe & Info ^^

$bb = preg_replace('/[color=([^ ]+).](.)[/color]/', '<span style="color:$1;">$2</span>', $bb);

$bb = preg_replace('/[ code=([^ ]+).](.)[/code ]/', '<span>$1</span>', $bb);


>   
> ... so sieht das schon eher aus, wie es sinnvoll ist. Die Frage ist jetzt nur, warum du nun im Ersatztext das id=... nicht mehr haben willst?  
  
Ups ja ist nur dem Testen zum Opfer gefallen, wollte einfach alle möglichen fehlerquellen auschliesen und habe die ausgabe nur mehr aufs nötigste reduziert, am ende landet das ja auch in keiner span sondern in einer php funktion die das weiterverarbeitet, ich glaub mit preg\_replace\_callback, aber das ist momentan noch egal.  
  

> Im Ausgangsposting war es noch drin. Und wenn es weg soll, ändert das aber nichts an der Nummerierung der Gruppierungen im Regulären Ausdruck (Gruppierungen werden mit runden Klammern eingeschlossen). Die erste Gruppe beginnt gleich nach dem ersten code= und enthält die Sprache. Die zweite Gruppe (.\*) enthält den Teil zwischen den beiden code-Tags, also den Programmcode, den du haben willst. Also musst du immer noch $2 nehmen, auch wenn du $1 (Sprachname) nicht mehr brauchst.  
>   

Jap, das ist mir eh auch klar. Trotzdem danke  
  

> Wenn dich das jetzt noch nicht ans Ziel führt, beschreibe bitte mal genau den aktuellen Stand.  
  
Mein aktueller Stand ist eigentlich immer noch das selbe, nur tausende von versuchen später.  
  
Um es mal Bildlich darzustellen:  
[paste/?do=post](http://seta.r00t.la/paste/?do=post)  
(Ist testbereit, und gibt die daten NUR weiter... ^^)  
  
Die Form leitet dan auf die Selbe seite mit dem do präfix \_post weiter, dort steht nur das:  
`_bb($_GET['source']);`{:.language-php}  
  
Die BB Funktion (diesmal mal im ganzen) sieht dan so aus:  
~~~php
function _bb($source){  
	$bb = $source;  
	$bb = preg_replace('/\[b\](.*?)\[\/b\]/', '<b>$1</b>', $bb);  
	$bb = preg_replace('/\[i\](.*?)\[\/i\]/', '<i>$1</i>', $bb);  
	$bb = preg_replace('/\[u\](.*?)\[\/u\]/', '<u>$1</u>', $bb);  
	$bb = preg_replace('/\[s\](.*?)\[\/s\]/', '<s>$1</s>', $bb);  
	$bb = preg_replace('/\[small\](.*?)\[\/small\]/', '<small>$1</small>', $bb);  
	$bb = preg_replace('/\[big\](.*?)\[\/big\]/', '<big>$1</big>', $bb);  
	$bb = preg_replace('/\[center\](.*?)\[\/center\]/', '<center>$1</center>', $bb);  
	$bb = preg_replace('/\[color=([^ ]+).*\](.*)\[\/color\]/', '<span style="color:$1;">$2</span>', $bb);  
	$bb = preg_replace('/\[ code=([^ ]+).*\](.*)\[\/code \]/', '<span id="$1">$2</span>', $bb);  
	$bb = preg_replace('/\[bcolor=([^ ]+).*\](.*)\[\/bcolor\]/', '<span style="background-color:$1;">$2</span>', $bb);  
	$bb = preg_replace('/\[img\](.*?)\[\/img\]/', '<img src="$1" />', $bb);  
	$bb = preg_replace('/\[url=([^ ]+).*\](.*)\[\/url\]/', '<a href="$1">$2</a>', $bb);  
	$bb = preg_replace('/\[url\](.*)\[\/url\]/', '<a href="$1">$1</a>', $bb);  
	$bb = preg_replace('/\n/', "<br/>\n", $bb);  
	echo $bb;  
}

Mal sehen wie viel davon richtig ankommt ^^ nja das war eigentlich das ganze... darum ist es mir auch so ein rätsel warum es nicht geht wo es doch eigentlich eh noch soooo simple ist...

Also danke nochmal,
l.g.