Sie setzen $
in falscher Stelle. Wenn Sie alles außer .exe
finden wollen, .js
verwenden
(\.|\/)(?!(exe|js)$)
Regex Demo
Grund: - Lookaheads sind von Null Breite Behauptung. Es bedeutet, dass sie keine Charaktere verbrauchen. In Ihrem regex
(\.|\/)(?!exe|js)$
Sie überprüfen für exe
oder js
kurz nach .
Look-Ahead verwendet. Sobald es überprüft wird, wird die Position unmittelbar nach .
zurückgesetzt. Jetzt prüft Ihre Regex, ob es das Ende der Zeichenfolge ist, indem Sie $
verwenden. Aber es ist ein Zeichen übrig, also ist es nicht Ende der Zeichenfolge und Ihre Regex wird für jede Erweiterung fehlschlagen.
Unten gibt es einige visuelle abcd.jpg
für Ihre regex (\.|\/)(?!exe|js)$
für Zeichenfolge zu erklären. (Spaces nur für Klarheit)
abcd . jpg
^^ ^^
|| ||
(Matches .) (New position after consuming .)
Was folgt nach .
jpg
ist, die weder zu exe
oder js
< --- gut bis hier
Wie Look-Ahead ist von Null abgestimmt werden sollte -Breite, die Position bleibt, wo es nach der Überprüfung ist, was folgt ist weder exe
noch js
abcd . jpg
^^
||
Check whether its $ i.e. end of string. This is False because we have j. So no match is returned
Wenn Sie Audio- und Video-Datei auf die schwarze Liste wollen, hier ist Starter
(?:[.\\])(?!(mp3|m4a|wmv|mp4|mkv)$)\w+
Regex Demo