Ich benutze dieses Werkzeug, wenn ich etwas mit Regex here tun muss.
Es ist unklar, was Sie meinen, indem Sie die Anfragen filtern. Möchten Sie die Anfragen löschen, indem Sie einfach das Muster anpassen oder möchten Sie die Werte der Übereinstimmungen selbst erfassen? Dies wird die Komplexität der Regex stark verändern.
Ich warne, dass Ihre letzte Zeile scheint, dass Sie einen komplexeren Ausdruck wollen. Obwohl es noch immer regulär ist, fängt es an, komplexere Funktionen einzubeziehen, wie zum Beispiel den Kontext zu überprüfen und den "einfachen" Pfad zu verlassen.
Da ich noch nicht kommentieren kann, werde ich diese Antwort aktualisieren, um eine Lösung zu enthalten, wenn sie beantwortet wird.
EDIT: Ich glaube nicht, Regex ist die Lösung, die Sie suchen, vor allem, wenn diese Liste kann groß .. aber ich denke, das könnte ein guter Anfang zu dem, was Sie suchen.
(?i)((?!dogs)(?!cats)[\.|/|\:|\w])+
Dies sollte nur Zeichenfolgen übereinstimmen, die insensitiv keine Hunde oder Katzen enthalten. Ich schlage vor, dass Sie den Pfad von einer URL verwenden, da dies auch diese von beliebigen Fehlalarmen des Abfrageparameters sowie von Domänenfehlern isoliert.
Um weitere Begriffe hinzuzufügen oder dynamisch zu erstellen, fügen Sie einfach weitere (?! Wort) Blöcke hinzu. Der Rest des Ausdrucks entspricht einem normalen URI-Zeichensatz. Wenn Sie jedoch noch weitere Elemente benötigen, fügen Sie einfach einen weiteren Balken '|' hinzu. und schließe den Charakter ein, den du unterstützen musst.
Wenn Sie viel klüger damit werden wollen, würde ich vorschlagen, dass Sie wahrscheinlich eine andere Lösung betrachten, da dies die Grenze der Nützlichkeit für reguläre Ausdrücke nähert.
Sie sollten URL-Klasse, nicht Regex verwenden – Jens
https://docs.oracle.com/javase/7/docs/api/java/net/URL.html – Mistalis
Ja, wahrscheinlich möchten Sie keine Regex verwenden URLs analysieren Nehmen wir an, Sie möchten es. '(?!' ist eine negative Vorausschau ... es geht nur am Anfang des Blocks, nicht nach jedem '|'. Kannst du mir ein Beispiel für eine URL geben und was erwartest du daraus? – Dacav