Encuentra la última subcadena después de un personaje.

Sé cómo encontrar una subcadena: desde el índice de inicio hasta el índice final, entre caracteres, etc., pero tengo un problema que no sé cómo resolver: tengo una cadena como, por ejemplo, una ruta: folder1/folder2/folder3/new_folder/image.jpg y la segunda ruta: folder1/folder2/folder3/folder4/image2.png

Y desde estos caminos quiero tomar solo las últimas partes: image2.png e image2.png . ¿Cómo puedo tomar una subcadena si no sé cuándo comienza (no sé el índice, pero puedo suponer que será después del último / carácter), si muchas veces se repite un carácter ( / ) y las extensiones? ¿Son diferentes ( .jpg y .png e incluso otros)?

Use os.path.basename() lugar y no se preocupe por los detalles.

os.path.basename() devuelve la parte del nombre de archivo de su ruta:

 >>> import os.path >>> os.path.basename('folder1/folder2/folder3/new_folder/image.jpg') 'image.jpg' 

Para un problema de división de cadenas más genérico, puedes usar str.rpartition() para dividir una cadena en una secuencia de caracteres dada contando desde el final :

 >>> 'foo:bar:baz'.rpartition(':') ('foo:bar', ':', 'baz') >>> 'foo:bar:baz'.rpartition(':')[-1] 'baz' 

y con str.rsplit() puedes dividir varias veces hasta un límite, nuevamente desde el final:

 >>> 'foo:bar:baz:spam:eggs'.rsplit(':', 3) ['foo:bar', 'baz', 'spam', 'eggs'] 

Por último, pero no menos importante, puedes usar str.rfind() para encontrar solo el índice de una subcadena, buscando desde el final:

 >>> 'foo:bar:baz'.rfind(':') 7 

Usted también puede hacer esto –

 str_mine = 'folder1/folder2/folder3/new_folder/image.jpg' print str_mine.split('/')[-1] >> image.png 

Usted puede hacer esta división en la última aparición

 my_string='folder1/folder2/folder3/new_folder/image2.png' print(my_string.rsplit("/",1)[1]) output:- image2.png 
  import re pattern=re.compile(r"(.*?)/([a-zA-Z0-9]+?\.\w+)") y=pattern.match(x).groups() print y[1] 

Sin restricciones de longitud.