WinFuture-Forum.de: Frage Zu Regulären Ausdrücken - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Frage Zu Regulären Ausdrücken


#1 Mitglied ist offline   flo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 7.955
  • Beigetreten: 14. November 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 09. Februar 2006 - 18:45

Hallo

Ich habe folgenden Regulären ausdruck
preg_match_all("/<!--\s+BEGIN\s+(.*)?\s+-->(.*)<!--\s+END\s+(\\1)\s+-->/ms",$this->t,$ma);


Nun ist es so das ein eintrag wie folgt aussehen muss damit der ausdruck zutrifft
<!-- Begin -->


Es muss genu ein Leerzeichen zwischen <!-- und Begin sein, sonnst geht es nicht.

Wie bekomme ich es hin das die Leerzeichen keine Rolle mehr spielen?

Ich habe bisher Rausgefunden das das mit dem Parameter \x gehen soll, aber wenn ich die \s ersetze geht gar nix mehr, und wenn ich es hinzufüge auch nicht.

Kann mir da jemand auf die sprünge helfen?
0

Anzeige



#2 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 09. Februar 2006 - 18:50

\s+ heißt ein oder mehr Leerzeichen, könntest du durch \s* ersetzen (beliebig viele).
0

#3 Mitglied ist offline   flo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 7.955
  • Beigetreten: 14. November 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 09. Februar 2006 - 19:12

So klappt fast, nur am ende noch nicht, hier ist mal der Quelltext so klappt es, nur nach END darf es noch genau ein Leerzeichen sein, komisch.

<!--		  BEGIN  hardware			   -->

<!--	END	hardware -->


   protected function _initTemplate()
	{
		preg_match_all("/<!--\s+BEGIN\s+(.*)?\s+-->(.*)<!--\s+END\s*(\\1)\s+-->/ms",$this->t,$ma);
		for ($i = 0; $i < count($ma[0]); $i++)
		{
		$search = "/\s*\n*<!--\s+BEGIN\s+(" . $ma[1][$i] . ")?\s+-->(.*)<!--\s*END\s*(" . $ma[1][$i]. ")\s+-->\s*\n*/ms";
		$replace = $this->delimiterStart . $ma[1][$i] . $this->delimiterEnd;
		
		$this->bl[$ma[1][$i]] =& new $this->className('',$this->params);
		$this->bl[$ma[1][$i]]->loadTemplateContent($ma[2][$i]);
		$this->t = preg_replace($search,$replace,$this->t);
		}
	}

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0