Zeichenkette von "Bad-Words" bereinigen no Case-Sensitive
Sascha Müller
- perl
Hallo,
folgende Anweisung bereinigt bei mir eine Zeichenkette von "Bad-Words":
foreach $item (@badwords)
{
$DATA{'msg'}=~s/$item//g
}
In @badwords stehen die Wörter, die aus $DATA{'msg'} gelöscht werden sollen. Leider ist diese Funktion Case-Sensitive, so dass zwar das Wort "sex" gelöscht wird, das Wort "Sex" aber nicht, zum Beispiel.
Wahrscheinlich ist es eine Kleinigkeit, diese Funktion so umzustricken, dass das trotzdem funktioniert, aber ich finde keine Info darüber.
Übrigens, in $DATA{'msg'} dürfen zum Schluss nicht nur kleine Buchstaben enthalten sein. Der Eintrag soll ja später wieder originalgetreu geschrieben werden. Es scheidet also aus, die Zeichenkette einfach in Kleinbuchstaben umzuwandeln. Das hätte ich nämlich hinbekommen. :-(
Vielen Dank für alle Hilfe.
Ciao
Sascha
Hi,
ich finde keine Info darüber.
dann solltest Du in
perldoc perlre
mal nach "i"s Ausschau halten :-)
Cheatah
Hi,
ich finde keine Info darüber.
dann solltest Du in
perldoc perlre
mal nach "i"s Ausschau halten :-)
Cheatah
Wo finde ich das? Bitte einen Link!
Danke!!!
Hi,
Wo finde ich das?
auf Deiner Festplatte, direkt neben Perl.
Bitte einen Link!
file:///C:/Windows/system/cmd.exe%20/K%20%22perldoc%20perlre%22
Cheatah ;-)
Hi,
Wo finde ich das?
auf Deiner Festplatte, direkt neben Perl.
Bitte einen Link!
file:///C:/Windows/system/cmd.exe%20/K%20%22perldoc%20perlre%22
Cheatah ;-)
Sorry, ich habe kein Perl auf meinem PC installiert. Finde ich das auf dem WebServer auch?
Hi,
Wo finde ich das?
auf Deiner Festplatte, direkt neben Perl.
Bitte einen Link!
file:///C:/Windows/system/cmd.exe%20/K%20%22perldoc%20perlre%22
Cheatah ;-)
Sorry, ich habe kein Perl auf meinem PC installiert. Finde ich das auf dem WebServer auch?
http://www.perldoc.com/perl5.6.1/pod/perlre.html
Aber eigentlich meint Cheatah, daß Du hinter deine Substitution einfach ein "i" setzen sollst.
$data{'whatever'}=~s/$badword//gi;
Alexander
Hi,
Wo finde ich das?
auf Deiner Festplatte, direkt neben Perl.
Bitte einen Link!
file:///C:/Windows/system/cmd.exe%20/K%20%22perldoc%20perlre%22
Cheatah ;-)
Sorry, ich habe kein Perl auf meinem PC installiert. Finde ich das auf dem WebServer auch?
Aber eigentlich meint Cheatah, daß Du hinter deine Substitution einfach ein "i" setzen sollst.
$data{'whatever'}=~s/$badword//gi;
Alexander
Hallo Alexander,
danke! ;-) Es war mir fast klar, dass das nicht die Welt sein kann!
Ciao
Sascha
Moin!
foreach $item (@badwords)
{
$DATA{'msg'}=~s/$item//g
}
In @badwords stehen die Wörter, die aus $DATA{'msg'} gelöscht werden sollen. Leider ist diese Funktion Case-Sensitive, so dass zwar das Wort "sex" gelöscht wird, das Wort "Sex" aber nicht, zum Beispiel.
Ich kann mir so garnicht vorstellen, daß du mit dieser Funktion das Wort "Busexpress" zu "Bupress" verkürzen willst. Oder "Sextant" zu "tant". ;)
Und wenns ganz dumm kommt, dann kürzt du sogar doppelt raus, weil das erste vermeintliche Badword rausfliegt, und dadurch an der Schnittstelle ein zweites Badword entsteht.
- Sven Rautenberg
Moin!
foreach $item (@badwords)
{
$DATA{'msg'}=~s/$item//g
}
In @badwords stehen die Wörter, die aus $DATA{'msg'} gelöscht werden sollen. Leider ist diese Funktion Case-Sensitive, so dass zwar das Wort "sex" gelöscht wird, das Wort "Sex" aber nicht, zum Beispiel.
Ich kann mir so garnicht vorstellen, daß du mit dieser Funktion das Wort "Busexpress" zu "Bupress" verkürzen willst. Oder "Sextant" zu "tant". ;)
Und wenns ganz dumm kommt, dann kürzt du sogar doppelt raus, weil das erste vermeintliche Badword rausfliegt, und dadurch an der Schnittstelle ein zweites Badword entsteht.
- Sven Rautenberg
Eigentlich sollten nur ganze Wörter gelöscht werden, oder? Das ist eine gute Theorie, gleich mal testen.
Stimmt, du hast Recht, er kürzt auch ganze Worte. Hmmm, aber wie vorhin schon erwähnt, durch den "Zurück-Button" kann derjenige seinen Text noch einmal überarbeiten.
Hallo,
da wir ja so ein bissel Atelier hier haben, noch eine Anmerkung an der direkten Frage vorbei, aber "über Deine Schulter schauend" ausgesprochen. Was für einen Sinn haben solche Badwordlisten eigendlich? Sicherlich eine schöne Übungsaufgabe beim Programieren, aber ansonsten? Wenn jemand, sagen wir einmal in meinem Gästebuch, schreiben würde : "das ist aber eine verfickt geile Seite, besser als jede Sexseite, heilige scheisse noch mal" würde ich persönlich das gerne stehen lassen. Wenn aber jemand schreibt. "Herr H(gelöscht jetzt) war der beste führer unseres Volkes" must Du schon eine clevere badwort-Entfernroitiene schreiben, um diesen Unsinn auszugrenzen.
Die beste Badwort-Funktion ist immer noch die persönliche Nachsorge, ansonsten sehe ich keinen so großen Sinn in diesen Dingern.
Nur ne ungefragte persönliche Meinung, verfickt noch mal ;-))))
Chräcker
Hallo,
da wir ja so ein bissel Atelier hier haben, noch eine Anmerkung an der direkten Frage vorbei, aber "über Deine Schulter schauend" ausgesprochen. Was für einen Sinn haben solche Badwordlisten eigendlich? Sicherlich eine schöne Übungsaufgabe beim Programieren, aber ansonsten? Wenn jemand, sagen wir einmal in meinem Gästebuch, schreiben würde : "das ist aber eine verfickt geile Seite, besser als jede Sexseite, heilige scheisse noch mal" würde ich persönlich das gerne stehen lassen. Wenn aber jemand schreibt. "Herr H(gelöscht jetzt) war der beste führer unseres Volkes" must Du schon eine clevere badwort-Entfernroitiene schreiben, um diesen Unsinn auszugrenzen.
Die beste Badwort-Funktion ist immer noch die persönliche Nachsorge, ansonsten sehe ich keinen so großen Sinn in diesen Dingern.
Nur ne ungefragte persönliche Meinung, verfickt noch mal ;-))))
Chräcker
Mein Gästebuch hat eine Vorschaufunktion, in der die entsprechenden Wörter dann bereits gelöscht sind. So hat der User die Möglichkeit noch einmal auf "Zurück" zu klicken, und seinen Text noch einmal zu überarbeiten. Ich finde die Funktion gut, aber das kann ja jeder machen wie er möchte.
Hallo,
Ich finde die Funktion gut, aber das kann ja jeder machen wie er
möchte.
natürlich kann das jeder machen wie er möchte ;-) (bin heut ja mal großzügig....) mich würde nur der Sinn interesieren. Warum möchtest Du so eine Funktion haben? Ich würde zumindest nach dem löschen von Worten nicht mehr in das Buch eintragen wollen....
Chräcker