我只需要提取字符串中字母前面的那些数字。例如 1A, 22C, 3C4, 10A,我想得到输出为 1, 22, 3, 10 然后取最大值,即 22。
答案 0 :(得分:2)
您可以使用正则表达式查找字母前面的数字,例如:
from re import findall, I
s = "1A 22C 3C4 10A"
matches = findall(r"(\d+)[a-z]",s,I)
maximum = max(map(int,matches))
findall
会在字符串 s
中找到所有符合正则表达式 r"(\d+)[a-z]"
的匹配项。 \d+
匹配一个或多个数字字符 (0-9) 并且 [a-z]
匹配一个字母(注意 I
标志告诉正则表达式忽略大小写,因此 [A-Z]
字母也是匹配)。
map(int,matches)
将所有匹配项转换为整数,而 max
只是找到其中的最大值。