Horst Nogajski: Hilfe bei Regular Expressions

Hallo zusammen,

ich möchte eine Parameterübergabe an eine Funktion so variabel und komfortabel gestalten wie möglich. Die Funktion bekommt Datei oder Verzeichnisnamen übergeben, also Werte vom Typ String. Bisher als Einzelstring oder ein Array mit mehreren Strings. Jetzt noch hinzunehmen möchte ich RegularExpressions.

Bisher überprüfe ich die/den übergebenen Parameter folgendermaßen:

function name($mixed) {
  if(is_array($mixed)) {
    if(in_array($mixed), $VergleichsParameter)) $match = TRUE;
  } else {
    if($mixed == $VergleichsParameter) $match = TRUE;
  }
  return $match;
}

Um auch RegExpr. nutzen zu können muß noch festgestellt werden ob der übergebene Parameter (ich gehe jetzt der Einfachheit halber nicht von einem Array aus) ein regulärer Ausdruck ist oder ein einfacher String.

Leider habe ich bisher nicht viel Ahnung von RegExpr. und es verunsichert mich auch ein wenig das es 2 verschiedene Arten davon in PHP zu geben scheint.

Kann mir vielleicht jemand einen Tipp geben welche/s Zeichen/kombination
A) auf jedenfall (immer) in einem regulären Ausdruck verwendet wird
B) nicht in einem Pfad/Dateinamen vorkommen kann.

Also irgend etwas wie ? * | < >

Zur Not würden mir auch eckige [Klammern] ausreichen, weil ich diese noch nie für Pfad/Dateinamen benutzt habe.

Viele Grüße,
Horst

  1. Sup!

    Leider habe ich bisher nicht viel Ahnung von RegExpr. und es verunsichert mich auch ein wenig das es 2 verschiedene Arten davon in PHP zu geben scheint.

    Es wäre ja auch denkbar, dass Du einen Array von RegExp übergeben willst.
    Vielleicht ist Dein Konzept ja noch nicht ganz ausgereift.
    Vielleicht übergibst Du lieber einen Array mit Referenzen auf Strukuren, in denen es einen Member gibt, der angibt, ob es ein String oder ein Regexp ist.

    Gruesse,

    Bio

    --
    Besucht den Adventskalender!
    http://selfcommunity.teamone.de/advent/2003/
    1. Hallo,

      Es wäre ja auch denkbar, dass Du einen Array von RegExp übergeben willst.
      Vielleicht ist Dein Konzept ja noch nicht ganz ausgereift.

      Naja, nicht ganz, aber die Sache mit dem Array, von mir aus auch gemischt mit STrings und RegExpr. wäre ja kein Thema. Soweit hatte ich schon vorgedacht. Denn wenn man einmal einen String als RegExpr. erkennen _könnte_, dann _könnte_ man das ja auch noch mal, bzw mit foreach alle Strings eines Arrays durchgehen, *g*.

      Naja, aber da es ja keine Zeichen gibt die zwingend in einer RegExpr. vorkommen müssen, muß ich es eben unkomfortabler machen wenn ich welche nutzen will.

      So, genug gequatscht, ich muß schnell zum Adventskalender, schon zehn nach zwölf. Sonst ist da wieder so'n Gedränge vor den Türchen, *g*.

      Viele Grüße,
      Horst

  2. hi Horst!

    Kann mir vielleicht jemand einen Tipp geben welche/s Zeichen/kombination
    A) auf jedenfall (immer) in einem regulären Ausdruck verwendet wird

    gibts nicht. mehr dazu auf http://www.php.net/manual/en/ref.pcre.php (introduction).

    B) nicht in einem Pfad/Dateinamen vorkommen kann.

    betriebssystemabhaengig.
    z.b. in windows bekommst du eine auflistung der "verbotenen" zeichen, wenn du versuchst, eine datei oder ein verzeichnis im explorer so umzubenennen, dass z.b. ein fragezeichen (?) drin vorkommt.

    zu deinem parameter-problem: am besten haelst du dich an das, was Bio geschrieben hat.

    prost
    seth