如何从字符串中获取最大值和最小值

Hen*_*ryM -2 python python-3.x

我有一个看起来像这样的字符串:

\n
\xc2\xa325 - \xc2\xa330More than \xc2\xa330\xc2\xa320 - \xc2\xa325\xc2\xa320 - \xc2\xa325, More than \xc2\xa330, \xc2\xa325 - \xc2\xa330, \xc2\xa315 - \xc2\xa320, Up to \xc2\xa315\xc2\xa315 - \xc2\xa320\n
Run Code Online (Sandbox Code Playgroud)\n

即,它是按随机顺序组合在一起的多个范围,可能有或没有空格或逗号分隔符。

\n

我想从中得到最大和最小值。我如何有效地做到这一点?我确信会有一个简单的正则表达式,但我看不到它

\n

U10*_*ard 5

正则表达式可以帮助:

\n
>>> import re\n>>> string = '\xc2\xa325 - \xc2\xa330More than \xc2\xa330\xc2\xa320 - \xc2\xa325\xc2\xa320 - \xc2\xa325, More than \xc2\xa330, \xc2\xa325 - \xc2\xa330, \xc2\xa315 - \xc2\xa320, Up to \xc2\xa315\xc2\xa315 - \xc2\xa320'\n>>> max(map(int, re.findall('\\d+', string)))\n30\n>>> \n
Run Code Online (Sandbox Code Playgroud)\n

编辑:

\n

如果您有逗号值,例如3,000,请尝试:

\n
>>> max(map(lambda x: int(x.replace(',', '')), re.findall('[\\d+,]+', string)))\n3000\n
Run Code Online (Sandbox Code Playgroud)\n