从字符串中分割数字并取最大值

时间:2021-03-26 19:39:25

标签: python pandas string split

我只需要提取字符串中字母前面的那些数字。例如 1A, 22C, 3C4, 10A,我想得到输出为 1, 22, 3, 10 然后取最大值,即 22。

1 个答案:

答案 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 只是找到其中的最大值。