regex - para - expresiones regulares google
Regex para todo antes de la última barra oblicua hacia adelante o hacia atrás (3)
Necesito una expresión regular que encuentre todo en una cadena hasta e incluyendo el último / o /.
Por ejemplo, c: / directory / file.txt debería resultar en c: / directory /
Prueba esto: (Rubular)
/^(.*[////])/
Explicación:
^ Start of line/string ( Start capturing group .* Match any character greedily [////] Match a backslash or a forward slash ) End the capturing group
La barra emparejada será la última debido a la codicia del .*
.
Si su idioma lo admite (o lo requiere), es posible que desee usar un delimitador diferente a /
para la expresión regular, de modo que no tenga que escapar de la barra diagonal.
Además, si está analizando las rutas de los archivos, probablemente encontrará que su idioma ya tiene una biblioteca que hace esto. Esto sería mejor que usar una expresión regular.
Si está utilizando sed, por ejemplo, puede hacer esto para mostrar todo antes de la última barra:
echo "/home/me/documents/morestuff/before_last/last" | sed s:/[^/]*$::
Saldrá:
/home/me/documents/morestuff/before_last
^(.*[////])[^////]*$