Tom: Reguläre Ausdrücke, mühsam ernärt sich das Eichhörnchen

Beitrag lesen

Hello,

bei 6:   (((.*?)))?
stürz ich ab...

inwiefern?

[3] => Array
        (
            [4] => F
            [5] =>
            [6] =>
            [7] =>
            [8] => filedate(-10)
            [9] => }-->

Das Ergebnis landet eben nicht in [5] und [6], sondern in [8]

Erwartet hätte ich:

[3] => Array
        (
            [4] => F
            [5] => filedate
            [6] => (-10)
            [7] => -10
            [8] =>
            [9] => }-->

Das Patrtern sieht bisher so aus:

1      2      3      4          5      6   7           8         9     10
  $pattern = '=^(.*?)(<!--\{)(.*?)(L|M|F|T)-([^\(]*?)(\((.*?)\))??([^\}]*?)(\}-->)(.*$)=msi';

Muss man die geschweiften Klammern eigentlich mittels zweier Backslashes maskieren?
also:

(<!--\{)   für das Suchmuster   <!--{

Die sind doch Metazeichen, oder?

Es sollen null oder einmal die Klammern (xxx) vohanden sein. Ich benötige aber auch das Argument

Was Du zurück haben möchtest, setzt Du in "(...)". Was Du _nicht_ zurück haben möchtest, setzt Du in "(?:...)". Es lohnt sich, auch die vielen, vielen anderen Gimmicks nachzulesen, die Regular Expressions auf Lager haben.

Wo?
Ich habe schon die wildesten Seiten durch, bin aber noch nicht viel schlauer geworden.
z.B. http://www.rrz.uni-hamburg.de/RRZ/W.Wiedl/Skripte/CGI-Perl/Regulaere_Ausdruecke/REIntro.htm#1.1

Gibts eine bessere Seite? Das würde mich freuen!

Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau