ich einen regulären Ausdruck benötigen, die eine bestimmte Zeichenfolge erkennt, ob eine URL zu einem [Potential] ist Datei dh
/file.pdf
http://www.whatever.com/file.docx
. ./file.longfileextension
Danke JungsRegex zu erkennen, dass Urls, wo das letzte ‚Segment‘ enthält einen Zeitraum
Antwort
Dieser Ausdruck wird die Aufgabe erledigen.
^.*/(?<filename>[^/]+?\.[^/]+)$
^ Anchor to the begining of the string .* Any character zero or more times / Slash (?<filename> Named group 'filename' [^/]+? Not a slash at least once and captured lazily \. One file extension separator (dot) [^/]+ Not a slash at leats once ) End of named group $ Anchor to the end of the string
Sie könnten das Ende untersuchen, um zu sehen, ob es wie eine Dateierweiterung aussieht, aber URLs nicht tatsächlich zu Dateien zuordnen; Was passiert, wenn die URL neu geschrieben wird?
Wenn Sie wollten eine bestimmte URL aufgelöst, um zu bestimmen, was könnten Sie eine HEAD
Anforderung ausgeben und prüfen Sie die content-type
und content-disposition
Header zu sehen, ob der Inhalt einer Art ist, die eine zugrunde liegende Datei schon sagt, aber auch das ist nicht kugelsicher, da Bilder, PDF usw. alle dynamisch erzeugt werden könnten.
Sie können nicht.
z. http://example.com/files/readme
könnte eine Textdatei oder ein Ordner sein (* Nix-Stil-Betriebssysteme würden konventionell keine .txt
Erweiterung hinzufügen).
Auch wenn es eine Dateierweiterung gibt, gibt es möglicherweise keine Datei mit serverseitigem Code, der die URL verarbeitet, um Inhalt zu erstellen (z. B. ein ASP.NET HttpHandler).
Warum versuchen Sie dies zu tun? Wenn Sie herausfinden möchten, ob die URL eine Datei zurückgibt, können Sie mit der Erweiterung raten (denken Sie daran, dass Anwendungen ihre eigenen erfinden können), aber die einzige wirkliche Möglichkeit besteht darin, eine HTTP HEAD-Anfrage auszuführen und den zurückgegebenen Inhaltstyp zu prüfen (aber wieder haben Sie das gleiche Problem mit dem, was eine gültige Datei MIME-Typ ist).
ich brauche, um festzustellen, ob eine URL von einem Benutzer eingegeben ist ein Versuch, eine Datei auf dem System zu verbinden oder nicht. –
@Adam: erweitert. – Richard
- 1. Zeitraum im URL-Segment verursacht Fehler 404
- 2. Hilfe mit Regex zu erkennen Urls in einer Zeichenfolge
- 3. Nginx - Rewrite letzte url Segment
- 4. Wie kann ich das erste und das letzte Element in einer foreach-Schleife erkennen?
- 5. Ausschließen das letzte Zeichen eines Regex
- 6. Regex, um das letzte Element nach dem Leerzeichen zu erhalten
- 7. Wie zu erkennen, dass der gesamte Zeitraum von C++ Random-Engine verbraucht wurde
- 8. Regex Linkify URLs
- 9. jQuery: enthält (Regex)?
- 10. Regex, um ein Wort zu finden, das ein Escapezeichen enthält
- 11. C++ wo zu platzieren enthält
- 12. Finde das letzte Vorkommen von Punkt mit Regex
- 13. Regex zu extrahieren alle URLs aus string
- 14. Erkennen Sie, dass das Gerät vibriert?
- 15. Das erste und letzte Element in einem Groovy erkennen {} closure
- 16. erkennen, ob Bespannbild enthält
- 17. Python-Regex, um einen String in Anführungszeichen zu finden
- 18. Letzte Zeile erkennen und eine hinzufügen
- 19. Operator << - So erkennen Sie das letzte Argument
- 20. Finden Sie das letzte Vorkommen von Regex Word
- 21. RegEx für dynamische URLs in Analytics Zieltrichter
- 22. Regex zum Entfernen von Bild-URLs?
- 23. Wie kann ich das letzte Objekt erkennen, wenn ich nachdenke?
- 24. C# Meine ArrayList enthält nur das letzte Element
- 25. iPhone App wird geöffnet, wo das letzte Mal gestoppt wurde
- 26. T-SQL rekursiv, um Transaktionen für einen Zeitraum zu finden
- 27. Erhalten letzte Segment von URL-Pfad mit MVC Razor
- 28. Regex: Abschnitt enthält
- 29. Regex zum Abrufen von Bildern aus einem Markdown Blurb, wo Bild-URI eine schließende Klammer enthält
- 30. Verhindern, dass der letzte Schlüssel in der Zeichenfolge ein Komma enthält
Vielen Dank für das Lesen zwischen den Zeilen :) –
Ich lese zuerst zwischen den Zeilen. Aber während es den allgemeinen Fall des Problems nicht löst, wird es Sonderfälle lösen und Sie sind wahrscheinlich nach einem Sonderfall, wie die modifizierte Frage anzeigt. –