Schnaps: Brauche mini RegExp

Guten morgen

Ich scheitere gerade an einem winzigen Regulären Ausdruck.

Dieser soll bei folgenden Beispiel eingaben

blabla

oder

blabla.txt

jeweils nur das bla finden.

ist dafür wenn einer eine datei eingibt das ich nur den namen der datei habe nicht die Endung.

Mein vorschlag ist das gewesen, aber da meckert der Rechner.

$test=~/(\w*)[.|$]/;

(Soll heißen: Speicher alle alphanumerischen zeichen bis ein Punkt oder Zeilen Ende kommt.)

Hoffe ihr könnt mir eben helfen.

MFG
Schnaps

  1. Hallo Schnaps,

    Dieser soll bei folgenden Beispiel eingaben

    blabla

    oder

    blabla.txt

    jeweils nur das bla finden.

    /^(\w+)(?:.txt)?$/

    $test=~/(\w*)[.|$]/;

    Richtig wäre:

    $test =~ /(\w+)(?:.|$)/;

    Die [] bezeichnen Zeichenklassen, das ist schon ein OR (auf Zeichen-Ebene allerdings).

    (Soll heißen: Speicher alle alphanumerischen zeichen bis ein Punkt oder Zeilen Ende kommt.)

    Dafür würde ich eher substr() und index() benutzen.

    Grüße,
     CK

    --
    Ganz gleich, welchen Weg ich wähle, ich kehre heim.
    http://wwwtech.de/
    1. use Mosche;

      [Dateinamen extrahieren]

      Dafür würde ich eher substr() und index() benutzen.

      Oder ein Modul, welches dafür gedacht ist:
      perldoc File::Basename

      use Tschoe qw(Matti);

      --
        Anyone who quotes me in their sig is an idiot. -- Rusty Russell.