Frank Schönmann: regexp ausschließlichkeit

Beitrag lesen

hi!

Ich möchte ein Formularfeld abprüfen
In diesem sollen ausschließlich Zeichenketten des Musters
\w\w\w\w\b
vorkommen.

Man könnte es vielleicht ungefähr so lösen:

=== cut ===
my $input = "aaaa bbbb cccc";
$result = grep { !/^\w{4}$/ } split / /, $input;
=== cut ===

In $result steht anschließend die Anzahl der Codes, die nicht mit dem
gewünschten Format übereinstimmen.

Erläuterung: split trennt die Eingabe an Leerzeichen auf. Dort kannst
du natürlich auch jedes andere Trennzeichen einsetzen, wenn du andere
benötigst. grep sucht anschließend alle Codes, die nicht dem regulären
Ausdruck in den geschweiften Klammern entsprechen. Im skalaren Kontext
liefert das die Anzahl dieser Elemente. Wenn $result also am Ende 0
ist, enthält deine Eingabe nur erlaubte Codes, ansonsten enthält
$result die Anzahl der unerlaubten Codes.

Wenn du $result durch @result ersetzt, erhälst du ein Array der falsch
formatierten Codes.

bye, Frank!

--
Never argue with an idiot. He will lower you to his level and then
beat you with experience.