Die erklärende Schreibweise für Dein OR und NOT im Filter wäre für eine Spalte wie folgt:
$if(
$or(
$regexp(%title%,'(&|;|^\s+|\s+$|\s\\|\\\s|\s\s+|")',1),
$not($regexp(%title%,'^[a-zA-Z0-9äöüÄÖÜ=ß'' \-\(\)\/:,\.\?!#\+@_%\*]+$',1))
),
BAD,
OK
)
Als Einzeiler - kaum mehr lesbar - und noch viel schlechter wartbar:
$if($or($regexp(%title%,'(&|;|^\s+|\s+$|\s\\|\\\s|\s\s+|")',1),$not($regexp(%title%,'^[a-zA-Z0-9äöüÄÖÜ=ß'' \-\(\)\/:,\.\?!#\+@_%\*]+$',1))),BAD,OK)
Mangels konkreter Beispiele kann ich nicht 100% garantieren ob diese OR und NOT-Verknüpfung wirklich wie gewünscht funktioniert. Du hast jetzt aber damit das Gerüst um in Deiner Sammlung testen zu können.
Da sind wir an einem Punkt angelangt, wo ich persönlich zwei Spalten verwenden würde, um einerseits den Schwierigkeitsgrad zu reduzieren und gleichzeitig die Wartbarkeit zu erhöhen.
Schon die Text-Erklärung ist nicht ganz ohne:
Diese Spaltendefinition prüft, ob das TITLE-Feld problematische Inhalte enthält. Sie meldet BAD, wenn
a) unerwünschte Muster vorkommen (z. B. führende/folgende Leerzeichen, doppelte Leerzeichen, &, ;, Backslashes, Anführungszeichen)
oder
b) TITLE Zeichen enthält, die nicht in der definierten Whitelist erlaubt sind.
Alles andere wird als OK markiert.
Das muss aber schlussendlich jeder für sich selber entscheiden. ![]()