Forums
Hola a tod@s,
Acabo de llegar al mundo "Python" y echo de menos algunas funciones que existen en otros lenguajes de programación que permiten extraer subcadenas de otra (por ejemplo extraer los caracteres que haya antes de un cierto delimitador). He leído por ahí que podría usar librerías de expresiones regulares, pero... me preguntaba si no hay opciones más sencillas para un novato :)
Abrazos
Pedro
Hola Pedro, efectivamente…
Hola Pedro,
efectivamente no hay una función que realice eso explícitamente, pero puedes simularla muy fácilmente obteniendo la posición del delimitador con el método .index(). Por ejemplo, imaginemos que tenemos el siguiente texto:
s = "16/enero/2020"
Podemos extraer la posición de la primera barra inclinada con:
s.index("/")
(devolverá el valor 2), de forma que podríamos extraer el texto anterior a dicha barra inclinada con:
s[:s.index("/")]
El resultado será "16":
Siguiendo con esta misma línea, podríamos extraer también el texto entre los dos delimitadores (las dos barras inclinadas), aunque de una forma un poco más complicada. En este caso necesitaríamos pasar como rango a extraer las posiciones de ambas barras. La primera ya hemos visto cómo obtenerla. La segunda es un poco más problemática pues el método .index() devuelve el primer índice en el que aparezca el texto indicado. Ahora bien, este método acepta un segundo parámetro que indica a partir de qué posición buscar, así que podemos pasar la posición del primer delimitador + 1. Es decir:
s.index("/")
...devuelve 2, pero:
s.index("/", s.index("/") + 1)
...devuelve 8 (estamos buscando la primera posición del carácter "/" a partir de la posición 2 + 1). Por lo tanto:
s[s.index("/") + 1:s.index("/", s.index("/") + 1)]
...devuelve "enero"
Un saludo
Daniel