Supongamos que existe la cadena
just/the/path/to/file.txt Necesito obtener la parte entre la primera y la última barra diagonal: the/path/to
Se me ocurrió esta expresión regular: /^(.*?).([^\/]*)$/ , pero esto me da todo lo que hay delante de la última barra inclinada.
No use [^/]* , ya que no coincidirá con nada que contenga una barra inclinada. Simplemente use .* para hacer coincidir cualquier cosa:
/(.*?)\/(.*)\/(.*)/ Grupo 1 = just , Grupo 2 = the/path/to y Grupo 3 = file.txt .
La expresión regular debe ser \/(.*)\/ . Puedes consultar mi demostración a continuación:
const regex = /\/(.*)\//; const str = `just/the/path/to/file.txt`; let m; if ((m = regex.exec(str)) !== null) { console.log(m[1]); }Esta expresión regular hará el truco
const str = "/the/path/to/the/peace"; console.log(str.replace(/[^\/]*\/(.*)\/[^\/]*/, "$1")); [^\/]*\/(.*)\/[^\/]*