Python Regex para extraer el valor numérico máximo de una string

Dada una string alfanumérica, extraiga el valor numérico máximo de esa string. Los alfabetos solo estarán en minúsculas. Ejemplos:

Input : 100klh564abc365bg
Output : 564
Maximum numeric value among 100, 564 
and 365 is 564.

Input : abchsd0sdhs
Output : 0

Este problema tiene una solución existente, consulte Extraer el valor numérico máximo de una string dada | Enlace del conjunto 1 (enfoque general) . Resolveremos este problema rápidamente en python usando Regex . El enfoque es muy simple,

  1. Encuentre una lista de todos los números enteros en una string separados por caracteres en minúsculas usando el método re.findall (expresión, string) .
  2. Convierta cada número en forma de string en un número decimal y luego encuentre el máximo.

Implementación:

Python

# Function to extract maximum numeric value from
# a given string
import re
 
def extractMax(input):
 
     # get a list of all numbers separated by
     # lower case characters
     # \d+ is a regular expression which means
     # one or more digit
     # output will be like ['100','564','365']
     numbers = re.findall('\d+',input)
 
     # now we need to convert each number into integer
     # int(string) converts string into integer
     # we will map int() function onto all elements
     # of numbers list
     numbers = map(int,numbers)
 
     print max(numbers)
 
# Driver program
if __name__ == "__main__":
    input = '100klh564abc365bg'
    extractMax(input)
Producción

564

Publicación traducida automáticamente

Artículo escrito por Shashank Mishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *