Andypsilon: Hilfe bei einem regulären Ausdruck

Hallo Community,
da ich in Sachen Perl nicht so den Durchblick habe, bitte ich bei einem reg. Ausdruck um Eure Hilfe:
Ich sitze vor dem u.a. Ausdruck und steige einfach nicht zu 100% dahinter, was der Verfasser damit ausdrücken will:

$variable =~ /^([\w\W^-]*)-Wort$/

Ferner fragt der Autor ab, ob der o.a. Ausdruck wahr ist (Verwendung in einer IF-Clause).

Ich hoffe, ihr versteht ihn etwas besser als ich!

Danke im Voraus,
Andreas

  1. @@Andypsilon:

    nuqneH

    Ich sitze vor dem u.a. Ausdruck und steige einfach nicht zu 100% dahinter, was der Verfasser damit ausdrücken will:

    $variable =~ /^([\w\W^-]*)-Wort$/

    Nicht zu 100%? Dann sei doch bitte so gut und erläutere die dir fehlenden Prozente, ehe man sich die Mühe macht, dir auch alles zu erklären, was dir schon klar ist.

    Qapla'

    --
    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
    1. @@Andypsilon:

      nuqneH

      Ich sitze vor dem u.a. Ausdruck und steige einfach nicht zu 100% dahinter, was der Verfasser damit ausdrücken will:

      $variable =~ /^([\w\W^-]*)-Wort$/

      Nicht zu 100%? Dann sei doch bitte so gut und erläutere die dir fehlenden Prozente, ehe man sich die Mühe macht, dir auch alles zu erklären, was dir schon klar ist.

      Qapla'

      Hallo,

      was mir nich klar is, ist, was er vor dem "-Wort$" macht und was das $ am Ende des Ausdrucks bedeutet. Irgendwie verhasple ich mich immer in der Gruppe, da es für mich danach ausschaut, als würde es bedeuten: "alles, was vor -Wort steht".
      Soweit das, was unklar ist :)

      Danke!

      1. @@Andypsilon:

        nuqneH

        was mir nich klar is, ist, was er vor dem "-Wort$" macht

        Dann war „nicht zu 100%“ wohl etwas untertrieben?

        Welche Frage lässt <http://de.selfhtml.org/perl/sprache/regexpr.htm@title=SELFHTML: Reguläre Ausdrücke> (insbes. <http://de.selfhtml.org/perl/sprache/regexpr.htm#zeichen@title=für einzelne Zeichen> und <http://de.selfhtml.org/perl/sprache/regexpr.htm#zeichenketten@title=für Zeichenketten>) noch offen?

        Qapla'

        --
        Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
        1. Welche Frage lässt <http://de.selfhtml.org/perl/sprache/regexpr.htm@title=SELFHTML: Reguläre Ausdrücke> (insbes. <http://de.selfhtml.org/perl/sprache/regexpr.htm#zeichen@title=für einzelne Zeichen> und <http://de.selfhtml.org/perl/sprache/regexpr.htm#zeichenketten@title=für Zeichenketten>) noch offen?

          Diese:
          Wie soll man unsinnige reguläre Ausdrücke verstehen.

          mfg Beat

          --
          ><o(((°>           ><o(((°>
             <°)))o><                     ><o(((°>o
          Der Valigator leibt diese Fische
          1. Welche Frage lässt <http://de.selfhtml.org/perl/sprache/regexpr.htm@title=SELFHTML: Reguläre Ausdrücke> (insbes. <http://de.selfhtml.org/perl/sprache/regexpr.htm#zeichen@title=für einzelne Zeichen> und <http://de.selfhtml.org/perl/sprache/regexpr.htm#zeichenketten@title=für Zeichenketten>) noch offen?

            Diese:
            Wie soll man unsinnige reguläre Ausdrücke verstehen.

            mfg Beat

            Danke, Beat.

  2. Ich sitze vor dem u.a. Ausdruck und steige einfach nicht zu 100% dahinter, was der Verfasser damit ausdrücken will:
    $variable =~ /^([\w\W^-]*)-Wort$/

    [\w\W] matcht auf alles, da jedes Zeichen, das nicht \w ist, zwangsläufig \W ist. Die nachfolgenden Zeichen ^- ändern daran auch nichts mehr.
    Das ist also identisch zu

    $variable =~ /^(.*)-Wort$/s

    Ferner fragt der Autor ab, ob der o.a. Ausdruck wahr ist (Verwendung in einer IF-Clause).

    if( "-Wort" =~ /^(.*)-Wort$/s ){  #true  }
    if( "\n-Wort" =~ /^(.*)-Wort$/s ){  #true  }

    Ich hoffe, ihr versteht ihn etwas besser als ich!

    Meine Intuition sagt mir dass der Autor viel mehr dieses pattern beabsichtigte.

    $variable =~ /^([^-]*)-Wort$/
    Matche irgendwas vor '-Wort' solange es nicht ein Hyphen ist.

    ^ bedeutet eine negierte Zeichenklasse WENN ^ das erste Zeichen in [] ein ^ ist.
    Es gibt keine Zeichenklassen in Perl die zugleich positiv und negativ sind.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische