📅  最后修改于: 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
表示数字,+
表示匹配多个数字。
Python的字符串类型提供了一个isdigit()
方法,它可以用于判断一个字符串是否只包含数字。我们可以利用这个方法来提取出字符串中的数字。
s = "The price of this item is $50.99"
result = ''.join(filter(str.isdigit, s))
print(result)
输出:
5099
上述代码中,首先将字符串中的每个字符都用filter()
函数进行过滤,只保留数字字符(即用isdigit()
方法判断为True的字符),然后用join()
函数将每个字符连接起来,形成一个完整的数字字符串。
我们可以根据字符串中的非数字字符进行切割,然后再判断每个切片是否只包含数字,从而提取出字符串中的数字。
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()
函数将数字字符串连接起来。