Korinthenkackerin: Code kürzen?

Beitrag lesen

Der Regex würde so aussehen: <!-- START MAIN //-->(.*)<!-- END MAIN //-->

Wie würde das dann genau aussehen?
<!-- START MAIN //-->(.*)<!-- END MAIN //-->
Nur eine Zeile?!
Ja.

Der Punkt findet jedes beliebige Zeichen, der * sagt, dass beliebig viele beliebige Zeichen gefunden werden wollen,

Das ist so nicht ganz richtig. Das Sternchen sagt, dass beliebig viele des vor dem Sternchen stehenden Elements gefunden werden sollen, nicht von beliebigen Zeichen.

Dir ist das sicher klar, aber für Anfänger wie Ingrid sollte dieser kleine, aber feine Unterschied schon deutlich dargestellt werden.

Zum Beispiel findet a* nicht beliebig viele beliebige Zeichen nach einem a, sondern beliebig viele a. Erst zusammen mit dem . (ein (eines!) beliebiges Zeichen) vor dem Sternchen, also .*, entsteht das Muster "beliebig viele beliebige Zeichen".

So sähe der gewünschte Code ungefähr aus:

if (preg_match('|' . $site_edit_start . "(.*)" . $site_edit_end . '|', $alt_pre, $treffer)) {
   var_dump($treffer);
}

In $treffer[0] befindet sich der auf das gesamte Muster passende Text, in $treffer[1] der Teil, der innerhalb des ersten runden Klammerpaars steht (entsprechend in $treffer[2] der eines zweiten runden Klammerpaars usw.).