REGEX: Erfassen Sie den Dateinamen von der URL ohne Dateierweiterung

8

Ich versuche einen Javascript Regex zu erstellen, der den Dateinamen ohne die Dateierweiterung erfasst. Ich habe die anderen Beiträge hier gelesen und 'gehe zu dieser Seite: Ссылка scheint die Standardantwort zu sein. Das scheint für mich nicht zu funktionieren. Also hier ist, wie ich versuche, die Regex zum Laufen zu bringen:

  1. Finde den letzten Schrägstrich '/' in der Betreffzeile.
  2. Erfassen Sie alles zwischen diesem Schrägstrich und dem nächsten Punkt.

Am nächsten kam ich: / ([^ /] ). \ w $ Was in der Zeichenfolge ' Ссылка " exec () würde /index.htm und index erfassen.

Ich brauche das nur um index zu erfassen.

    
AyexeM 08.09.2010, 20:13
quelle

4 Antworten

39
%Vor%

Lassen Sie uns durch den regulären Ausdruck gehen:

%Vor%

Dieser Ausdruck sammelt alle Zeichen, die kein Schrägstrich sind, die sofort gefolgt werden (dank des Lookahead ) ) durch eine Erweiterung und das Ende der Zeichenfolge - oder anders gesagt, alles nach dem letzten Schrägstrich und bis zur Erweiterung.

Alternativ können Sie dies auch ohne reguläre Ausdrücke tun, indem Sie die Position des letzten / und des letzten . mit lastIndexOf und erhalten eine substring zwischen diesen Punkten:

%Vor%     
Daniel Vandersluis 08.09.2010, 20:20
quelle
17

getestet und funktioniert, auch für Seiten ohne Dateierweiterung.

%Vor%

([\w\d_-]*) erhält einen String mit Buchstaben, Ziffern, Unterstrichen oder Bindestrichen.
\.? vielleicht folgt auf den String ein Punkt.
[^\\/]*$ , aber sicher nicht gefolgt von einem Schrägstrich oder Backslash bis zum sehr Ende.
/i oh yeh, Fall ignorieren.

    
BGerrissen 08.09.2010 20:45
quelle
1

Sie können diese Regex versuchen:

%Vor%     
Colin Hebert 08.09.2010 20:17
quelle
0

Ich fand keine der Antworten in der Nähe von robust genug. Hier ist meine Lösung.

%Vor%

Um mit der ursprünglichen Frage übereinzustimmen, wird standardmäßig die Erweiterung ausgeschlossen, aber das kann leicht umgekehrt werden.

    
Adam Lockhart 01.12.2016 17:08
quelle

Tags und Links