He estado tratando de usar el patrón de expresiones regulares para obtener el nombre del depósito S3 del URI de S3, pero no tuve suerte.
ejemplo: s3://example-bucket/file-name.filetype
Lo más cerca que pude estar con esto: \/\/([^\/].*[^\/])\/ pero no estoy seguro de cómo negar la barra del resultado
La parte ([^/]+) busca una secuencia de caracteres que no sean barras. manteniéndose cerca de lo que tenía, podría escribir //([^/]+)/ pero esto es lo mismo que
//([^/]+) opcional, puede usar mirar atrás (?<=//) y/o mirar hacia adelante ( (?=/)
(?<=//)([^/]+)(?=/)(dependiendo de sus casos de uso, son posibles un par de expresiones anticipadas diferentes)
'lookaround', especialmente 'lookbehind', no es compatible con todos los dialectos de expresiones regulares. por ejemplo, no en JavaScript
Si no tiene la opción de mirar atrás (regex de javascript) y la estructura de su URL es lo suficientemente consistente, entonces quizás este patrón sea útil:
[^\/]+(?=\/[^\/])
En inglés: "coincidir con una o más barras diagonales, seguidas (pero no coincidentes, a través de la búsqueda anticipada) por una barra diagonal y una barra diagonal no frontal".
(su otra opción sería acceder a sus grupos de coincidencias para deshacerse de las barras con las que hizo coincidir)