Hilfe bei einem regulären Ausdruck
Andypsilon
- perl
0 Gunnar Bittersmann0 Andypsilon
0 Beat
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
@@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'
@@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!
@@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'
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
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.
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