📜  从字符串python中提取数字(1)

📅  最后修改于: 2023-12-03 15:36:17.374000             🧑  作者: Mango

从字符串中提取数字

在Python中,我们经常需要从字符串中提取出数字。这个过程实际上是一个字符串操作。

方法一:使用正则表达式

正则表达式是用于匹配模式的表达式。使用正则表达式可以方便地从字符串中提取出数字。

import re

s = "The price of this item is $50.99"

result = re.findall(r'\d+', s)
print(result)

输出:

['50', '99']

上述代码中,使用re.findall()函数以\d+作为匹配模式,表示匹配字符串中的数字。\d表示数字,+表示匹配多个数字。

方法二:使用isdigit()方法

Python的字符串类型提供了一个isdigit()方法,它可以用于判断一个字符串是否只包含数字。我们可以利用这个方法来提取出字符串中的数字。

s = "The price of this item is $50.99"

result = ''.join(filter(str.isdigit, s))
print(result)

输出:

5099

上述代码中,首先将字符串中的每个字符都用filter()函数进行过滤,只保留数字字符(即用isdigit()方法判断为True的字符),然后用join()函数将每个字符连接起来,形成一个完整的数字字符串。

方法三:使用split()方法

我们可以根据字符串中的非数字字符进行切割,然后再判断每个切片是否只包含数字,从而提取出字符串中的数字。

s = "The price of this item is $50.99"

result = []
for item in s.split():
    if item.isdigit():
        result.append(item)
result = ' '.join(result)
print(result)

输出:

50.99

上述代码中,首先根据空格将字符串切割成多个子字符串(由于字符串中含有空格,因此可以通过此方式分离出价格),然后使用isdigit()方法判断每一个子字符串是否为数字。如果是数字,则将其加入列表中。最后用join()函数将数字字符串连接起来。