Also, ich habe eine Art von internen URLs: zum Beispiel "/img/pic/Image1.jpg" oder "/pic/Image1.jpg" oder einfach "Image1.jpg", und ich muss dieses "Image1 .jpg "mit anderen Worten, ich möchte die letzte Zeichenfolge nach / oder wenn es keine / als nur Zeichenfolge gibt. Vielen Dank im Voraus!
.*/(.*)
funktioniert nicht, wenn keine / s vorhanden ist.
([^/]*)$
sollte funktionieren, ob vorhanden oder nicht.
Eigentlich brauchst du dafür kein regexp.
%Vor% und es funktioniert auch für Strings ohne /
, weil lastIndexOf dann -1 zurückgibt.
In Ruby würden Sie
schreiben %Vor% Regexps in Ruby sind ziemlich universell und Du kannst sie hier live testen: Ссылка
Übrigens: Vielleicht gibt es eine andere Lösung, die keine Regexps beinhaltet? ZB File.basenam(path)
(Ruby wieder)
Bearbeiten: profjim hat es schon früher gepostet.
Eine einfache Regex, die ich getestet habe:
%Vor%Hier ist eine gute Seite, an der Sie sie testen können: Ссылка
Etwas wie. * / (. *) $ (Details hängen davon ab, ob wir über Perl oder einen anderen Dialekt regulärer Ausdrücke sprechen)
Erstens. * entspricht allem (einschließlich Schrägstrichen). Dann gibt es einen Schrägstrich, dann gibt es. * Das passt alles von diesem Schrägstrich bis zum Ende (das ist $).
Der * funktioniert gierig von links nach rechts, was bedeutet, dass wenn Sie mehrere Schrägstriche haben, der erste. * alle bis auf den letzten passt.
Tags und Links regex