Actualmente estoy enfrentando el problema de que tengo una cadena de la que quiero extraer solo el primer número. Mi primer paso fue extraer los números de la cadena.
Headline = "redirectDetail('27184','2 -New-York-Explorer-Pass')" print (re.findall('\d+', headline )) Output is ['27184', '2']
En este caso me devolvieron dos números pero solo quiero tener el primero “27184”.
Por lo tanto, he intentado con el siguiente código:
print (re.findall('/^[^\d]*(\d+)/', headline ))
Pero no funciona:
Output:[]
¿Pueden ustedes ayudarme? Cualquier comentario es apreciado
Simplemente use re.search
que deja de coincidir una vez que encuentra una coincidencia.
re.search(r'\d+', headline).group()
o
Debe eliminar las barras diagonales presentes en su expresión regular.
re.findall(r'^\D*(\d+)', headline)
Solución sin expresiones regulares (no necesariamente mejor):
import string no_digits = string.printable[10:] headline = "redirectDetail('27184','2 -New-York-Explorer-Pass')" trans = str.maketrans(no_digits, " "*len(no_digits)) print(headline.translate(trans).split()[0]) >>> 27184
re.search('[0-9]+', headline).group()