如何使用Python从字符串中提取数字?

这篇具有很好参考价值的文章主要介绍了如何使用Python从字符串中提取数字?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Python中,有时候需要从字符串中提取特定的数字信息,这种操作很常见。例如,从一篇新闻报道中提取新闻发布日期、从一篇小说中提取章节编号等。那么,如何使用Python从字符串中提取数字呢?本文将介绍几种方式。



阅读更多:Python 教程

方法一:使用正则表达式

正则表达式是一种专门用于字符串匹配的工具,在Python中有re模块支持正则表达式操作。通过正则表达式,可以匹配和提取字符串中的数字。具体实现代码如下:

import re

str1 = '这是一段包含数字的字符串 123456,可以使用正则表达式提取数字'

# 定义正则表达式
pattern = r'\d+'

# 匹配字符串中的数字
match_obj = re.findall(pattern, str1)

# 输出匹配结果
print(match_obj)

Python

Copy

代码中,使用re.findall函数匹配字符串中的数字,匹配规则由正则表达式r’\d+’定义,\d表示匹配数字,+表示匹配前面的1个或多个数字。执行上述代码后,输出结果为['123456']

如果需要提取多组数字,只需要修改正则表达式的定义即可。例如,需要提取下面字符串中的数字:

str2 = 'Python是一门流行的编程语言,目前最新版本是Python 3.10,发布于2021年10月4日'

Bash

Copy

该字符串中包含两组数字,分别是3.10和2021年10月4日。可以使用r’\d+.\d+’匹配版本号,使用r’\d{4}年\d{1,2}月\d{1,2}日’匹配日期信息。具体的代码实现如下:

import re

str2 = 'Python是一门流行的编程语言,目前最新版本是Python 3.10,发布于2021年10月4日'

# 定义正则表达式
pattern1 = r'\d+\.\d+'
pattern2 = r'\d{4}年\d{1,2}月\d{1,2}日'

# 匹配字符串中的数字
match_obj1 = re.findall(pattern1, str2)
match_obj2 = re.findall(pattern2, str2)

# 输出匹配结果
print(match_obj1)
print(match_obj2)

Python

Copy

在上述代码中,使用了两个正则表达式,匹配结果存储在match_obj1match_obj2变量中,输出结果分别为['3.10']['2021年10月4日']

方法二:使用字符串方法

除了正则表达式外,Python的字符串还提供了一些常用的方法,可以方便地从字符串中提取数字。下面介绍一些常用的字符串方法。

方法一:isdigit()

isdigit()方法可以判断一个字符串是否只包含数字字符。如果包含数字字符,则返回True,否则返回False。如果一个字符串只有部分字符为数字,也会返回False。例如,字符串’12345’返回True,字符串’12F45’返回False。具体代码如下:

str3 = '1969年7月20日 20:17:40'

num_str = ''

# 提取字符串中的数字
for char in str3:
    if char.isdigit():
        num_str += char

# 输出匹配结果
print(num_str)

Python

Copy

在上述代码中,使用字符串方法isdigit()判断字符是否为数字,将字符串中的数字提取出来,输出结果为19697201740

方法二:isnumeric()

isnumeric()方法可以判断一个字符串是否只包含数字字符和数字字符对应的Unicode数值。如果包含数字字符和对应的Unicode数值,则返回True,否则返回False。例如,字符串’12345’和字符串’一二三四五’都返回True,而字符串’12F45’和字符串’$#@!’都返回False。具体代码如下:

str4 = '一二三四五 12345'

num_str = ''

# 提取字符串中的数字
for char in str4:
    if char.isnumeric():
        num_str += char

# 输出匹配结果
print(num_str)

Python

Copy

执行上述代码后,输出结果为一二三四五12345,只提取其中的数字字符。

方法三:split()

split()方法可以将一个字符串按指定字符分割成若干个子字符串,并返回一个列表。例如,可以使用空格、逗号、分号等分割符将一个字符串分割成若干个子字符串。许多时候,字符串中的数字和非数字字符混合在一起,可以使用split()方法将字符串按照非数字字符分割成若干个子字符串,再从中提取数字。具体代码如下:

str5 = '这个字符串包含数字12、54和97,还有一些其他英文字母'

num_list = []

# 将字符串按非数字字符分割成若干个子字符串
str_lst = str5.split(' ')
for s in str_lst:
    if s.isdigit():
        num_list.append(int(s))

# 输出匹配结果
print(num_list)

Python

Copy

在上述代码中,使用split()方法将字符串按照空格分割成若干个子字符串,如果子字符串是数字,则将其转换成整数并存储在列表中,输出结果为[12, 54, 97]

方法三:使用第三方库

Python的第三方库很多,其中一些库可以方便地从字符串中提取数字。例如,使用NumPy库中的函数可以将字符串中的数字转换成浮点数。具体代码如下:

import numpy as np

str6 = '3.1415926'

# 将字符串转换成浮点数
num_float = np.float(str6)

# 输出匹配结果
print(num_float)

Python

Copy

在上述代码中,使用NumPy库中的np.float()函数将字符串转换成浮点数,输出结果为3.1415926

结论

使用Python从字符串中提取数字,可以使用正则表达式、字符串方法或第三方库。如果字符串中的数字位置和格式较为固定,使用正则表达式可以比较方便地提取数字;如果字符串中数字和非数字字符混合在一起,可以使用字符串方法将字符串分割成若干个子字符串提取数字;如果需要将字符串中的数字转换成数字类型,也可以使用第三方库提供的函数快速实现。文章来源地址https://www.toymoban.com/news/detail-661992.html


到了这里,关于如何使用Python从字符串中提取数字?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java 如何字符串中提取数字,这个方法真的很不错

    Java中提取字符串中的数字,可以使用正则表达式或非正则表达式的方法。 1.使用正则表达式 可以使用正则表达式\\\"d+\\\"来匹配字符串中的数字,并使用Matcher和Pattern类实现。 2.非正则表达式方法 使用Java中的Character类中的isDigit()方法来判断当前字符是否为数字,并在字符串中进

    2024年02月15日
    浏览(50)
  • chatgpt赋能python:Python中如何取出字符串中的数字并赋予新的变量

    在 Python 中,我们经常需要处理字符串,其中可能包含多种类型的数据。当我们需要获取字符串中的数字时,该怎样做呢?本文将介绍取出字符串中的数字的方法,并赋予新的变量,以便后续使用。 第一种方法是使用循环遍历字符串,将字符串中的每个字符逐一比较,如果是

    2024年02月08日
    浏览(42)
  • 使用 Python 从作为字符串给出的数字中删除前导零

    使用的方法 以下是用于完成此任务的各种方法 - 使用 For 循环和 remove() 函数 使用正则表达式 使用 int() 函数 算法(步骤) 以下是执行所需任务要遵循的算法/步骤。− 创建一个函数 deleteLeadingZeros(),该函数从作为字符串传递给函数的数字中删除前导零。 使用 for

    2024年02月07日
    浏览(67)
  • python提取文件中特定字符串

    目录 1. Python3文件操作 1.1 打开和关闭文件 1.1.1 open( ) 函数 1.1.2 close( ) 函数 1.2  读写文件 1.2.1 write( ) 函数 1.2.2 read( ) 函数 2. 提取文件中特定字符串 代码如下(示例): 1.1.1 open( ) 函数 1.1.2 close( ) 函数   注意: 使用 open() 方法一定要保证关闭文件对象,即调用 close(

    2024年02月04日
    浏览(60)
  • python 正则表达式提取字符串

    1、提取字符串的场景及公式、命令 背景 :目前遇到的场景主要是以某个字符串开始、某个字符串结束,提取中间部分的字符,有的时候需要开始的字符,有时不需要,大概涉及到了4种情况,场景及处理方式如下: 1.1 以某个字符开始、某个字符结束,期待的提取结果 包含

    2024年02月02日
    浏览(52)
  • unity 提取 字符串中 数字 修改后返回 字符串

    参考博主:unity 提取字符串数字修改后返回字符串_unity string提取数字_lvcoc的博客-CSDN博客  正数和浮点数的 正则表达式 示例: 用例:“z = 0.08596656649430752LAI  +  0.032354611497339036Aspect  +  0.07883658697039622Humidity  +  58.427987942231184” 打印结果:z = 0.085LAI  +  0.032Aspect  +  0.078H

    2024年02月11日
    浏览(52)
  • MySql 字符串中提取数字

    在MySQL中,有时需要从字符串中提取数字。在这种情况下,我们可以使用一些函数来实现该效果。但是,这些函数中的一些可能会提取字符串中的所有数字,而其他函数可能只会提取最长的数字字符序列。因此,我们需要了解每个函数的行为及其应用场景。 1. REGEXP_REPLACE()函数

    2024年02月09日
    浏览(58)
  • 【Python】python 字符串转数字

    要将一个字符串转成数字,可以使用以下方法: 使用 int() 函数将字符串转换为整数 示例代码: 需要注意的是,如果字符串无法转换成数字,会引发 ValueError 异常。比如: 使用 float() 函数将字符串转换为浮点数 示例代码: 同样地,如果字符串无法转换成数字,也会引发 V

    2024年02月11日
    浏览(47)
  • (python)正则表达式提取字符串中的各种信息(持续更新)

            在日常数据处理过程,拿到一段文字,进行关键信息的提取.总而言之,翻来覆去地用到几种处理方法.这些都需要用到正则去进行通用处理.比如提取关键信息,诸如时间,日期,地址等. 那么我们要根据关键信息的特征去提取. 数字提取:可以用正则表达式来提取数字,包括整

    2024年01月24日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包