📜  Python正则表达式从字符串中提取最大数值

📅  最后修改于: 2022-05-13 01:55:29.741000             🧑  作者: Mango

Python正则表达式从字符串中提取最大数值

给定一个字母数字字符串,从该字符串中提取最大数值。字母只会小写。

例子:

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

Input : abchsd0sdhs
Output : 0

此问题已有解决方案,请参阅从给定字符串中提取最大数值 |设置 1(一般方法)链接。我们将在Python中使用 Regex 快速解决这个问题。方法很简单,

  1. 使用 re.findall(expression, 字符串 ) 方法查找字符串中由小写字符分隔的所有整数的列表。
  2. 将字符串形式的每个数字转换为十进制数,然后找到它的最大值。
# 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)

输出:

564