Python正则表达式从字符串中提取最大数值
给定一个字母数字字符串,从该字符串中提取最大数值。字母只会小写。
例子:
Input : 100klh564abc365bg
Output : 564
Maximum numeric value among 100, 564
and 365 is 564.
Input : abchsd0sdhs
Output : 0
此问题已有解决方案,请参阅从给定字符串中提取最大数值 |设置 1(一般方法)链接。我们将在Python中使用 Regex 快速解决这个问题。方法很简单,
- 使用 re.findall(expression, 字符串 ) 方法查找字符串中由小写字符分隔的所有整数的列表。
- 将字符串形式的每个数字转换为十进制数,然后找到它的最大值。
# 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