Jemand zu Hause?
QuoteUm Unicode-Emojis und andere grafische Symbole aus einer Zeichenkette in Perl zu entfernen, kannst du den folgenden Regex-Ausdruck verwenden. Dieser Ausdruck zielt darauf ab, eine Vielzahl von Unicode-Emoji-Symbolen abzudecken:
$string =~ s/[^\p{L}\p{N}\s]+//g;
Erklärung
s///g: Dies ist der Substitutionsoperator von Perl. Das g am Ende steht für "global", was bedeutet, dass alle Übereinstimmungen in der Zeichenkette ersetzt werden.
[^\p{L}\p{N}\s]+: Dies ist ein Negativzeichenklasse:
\p{L} erfasst alle Buchstaben (Unicode).
\p{N} erfasst alle Zahlen (Unicode).
\s erfasst Leerzeichen.
Das ^ am Anfang der Zeichenklasse bedeutet, dass alles nicht von diesen Zeichen erfasst werden soll.
Beispiel
Hier ist ein einfaches Beispiel, um zu verdeutlichen, wie wir das nutzen können:
my $string = "Hallo 👋 Welt 🌍! Dies ist ein Test 😊.";
$string =~ s/[^\p{L}\p{N}\s]+//g;
print $string; # Ausgabe: "Hallo Welt Dies ist ein Test"
In diesem Beispiel werden die Emojis entfernt, sodass nur die Buchstaben, Zahlen und Leerzeichen übrig bleiben.
Diese Methode kann für die meisten Einschränkungen vor Unicode-Emojis und anderen grafischen Symbolen angepasst werden. Wenn du spezifische Symbole ein- oder ausschließen möchtest, passe die Zeichenklasse entsprechend an.
use strict; use warnings;