Pascal: Wer kennt sich mit "Reguläre Ausdrücken" aus?

Beitrag lesen

Lieber Pascal,

$text = "body{color:#fff;}#box{left:0px;}";

function($text,'{','}');


> >   
> > Das Ergebnis sollte dann so aussehen:  
> >   
> > ~~~css

color:#fff;  

> > left:0px;

das ist ein Standardfall für Mustererkennung. Dazu gibt es die berühmten regulären Ausdrücke und in PHP die passenden Funktionen dazu. Du suchst im Grunde preg_match() bzw. preg_match_all() in Verbindung mit einem passenden <http://de.selfhtml.org/perl/sprache/regexpr.htm@title=regulären Ausdruck>.

Liebe Grüße,

Felix Riesterer.

Hallo Felix,

Vielen Dank! Hab nach dem Post hier noch weiter gesucht und bin dabei
dann auch über preg_match_all gestolpert.

Allerdings haben die "Reguläre Ausdrücke", bei für Verwirrung gesorgt.
Dank deinem Link tun Sie dass jetzt nicht mehr =)

Ich finde dass "preg_match_all" eine recht Komplizierte Angelegenheit ist. Deswegen wundert es mich sehr, dass ich keine vereinfachte Funktion finden
konnte!

Habe mich jetzt mal dran gemacht dass ganz in eine Funktion zufassen.

Da ich zurzeit aber noch mit den "Reguläre Ausdrücke" auf Kriegsfuß stehe.
Würde es mich Freuen wenn jemand "meine" Funktion mit den noch Fehlenden "Reguläre Ausdrücke" erweitert.

Sinn und Zweck soll es sein eine CSS Datei aufzutrennen.
In:
               Anfang     ende
                 |         |
ID =            "#"       "{"
CLASS =         "."       "{"
CSS              |         |
(color:)=     "{oder;"    ":"
Farbe            |         |
(:#fff)=        ":#"      ";"

etc etc

Der "Anfang" und dass "ende" sollen per "function()" übergeben werden.
Und als "return()" sollte das was dazwischen Steht ausgegeben werden.

"meine" function() Funktioniert soweit schon. Nur eben nicht "Richtig"
da eben noch ein paar "Reguläre Ausdrücke" fehlen.

Das Ergebnis soll später ein einfacher AJAX Online CSS Editor werden.
Der dann mit Jquery und Mootools(Farb Slider) ausgestatt einfach
und schnell eine CSS Datei Editieren kann.

Vielen DANK!

Hier Die Funktion:

<?php  
function spliting($text,$zeichenA,$zeichenB){  
preg_match_all("/($zeichenA([a-zA-Z0-9_])+$zeichenB)/", $text, $treffer, PREG_SET_ORDER);  
foreach ($treffer as $wert) {  
$split.=$wert[1]."<br>\n<br>\n";  
}  
return ($split);  
}  
  
$css = "body{color:#fff;}#box{left:0px;}#lol_01{right:0px;}#lol{right:0px;}.hallo{left:0px;}.welt_01{right:0px;}";  
  
echo "<br>--MY-<br>";  
echo spliting($css,".","{");  
echo "<br>--MY-<br>";  
?>

HTML Ausgabe:
--MY-
#box{

#lol_01{

#lol{

--MY-