Seite 1 von 1

Regex für static content suche

Verfasst: Montag 12. Juni 2023, 13:07
von erselbst
Hallo!

Ich möchte gern mit folgende Regex alle Static Content Einträge aus dem Logfile filtern/suchen.

Code: Alles auswählen

/\.(css|js|png|jpg)(\?|)/
Ich würde jetzt *.css, *.js, *.png und *.jpg Ergebnisse erwarten. Leider werden dabei auch Einträge wie *.jsp und *.jspdbx gefunden.

Wie bekomme ich das hin, dass der Ausdruck nicht so gierig ist und *.jsp und *.jsdbx nicht gefunden werden? Zu beachten ist, dass ein z.B. CSS file auch ein Querystring wie custom.css?v=123456 haben kann.

Kann mir da jemand auf die Sprünge helfen?


Viele Grüße
Marko

Re: Regex für static content suche

Verfasst: Montag 12. Juni 2023, 13:43
von __blackjack__
Eventuell so etwas "\.(css|js|png|jpg)(\W|)"?

Re: Regex für static content suche

Verfasst: Montag 12. Juni 2023, 13:47
von Sirius3
Dann mußt Du halt Deinen regulären Ausdruck entsprechend anpassen, indem Du z.B. ein Wortgrenze forderst:

Code: Alles auswählen

/\.(css|js|png|jpg)\w/

Re: Regex für static content suche

Verfasst: Montag 12. Juni 2023, 14:18
von erselbst
Ich denke ich hab es jetzt:

Code: Alles auswählen

\/([^\/]+?\.(?:css|js|png|jpg))(?:\?|\s)
Dieser Ausdruck hat mir *.css, *.js, *.png und *.jpg angezeigt aber *.jsp und *.jsdbx wurden jetzt ausgelassen.

Cool, manchmal brauch man nur ein/zwei Gedankengänge von anderen um auf die Lösung zu kommen :D

Vielen Dank, Euch allen!

Re: Regex für static content suche

Verfasst: Montag 12. Juni 2023, 14:49
von Sirius3
Und warum nicht den einfachen Weg über Wortgrenze \W?

Re: Regex für static content suche

Verfasst: Montag 12. Juni 2023, 15:06
von erselbst
Uff, stimmt. Der ist noch einfacher:

Code: Alles auswählen

\/([^\/]+?\.(?:css|js|png|jpg))\W

Re: Regex für static content suche

Verfasst: Montag 12. Juni 2023, 16:07
von narpfel
Eine Wortgrenze ist eigentlich `\b`; `\W` erfordert, dass da noch ein Zeichen nach der Dateiendung kommt. Das funktioniert also unter Umständen nicht, wenn der gesuchte Text ganz am Ende der Datei steht und die letzte Zeile kein Newline am Ende hat.