iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python利用正则表达式从字符串提取数字
  • 706
分享到

Python利用正则表达式从字符串提取数字

2024-04-02 19:04:59 706人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言利用正则表达式从字符串提取数字附python正则表达式抽取文本中的时间日期总结前言 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 Pyt

前言

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。

re 模块使 Python 语言拥有全部的正则表达式功能。

利用正则表达式从字符串提取数字

主要用到下面几个函数

(1)compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。

语法格式为:

re.compile(pattern[, flags])

参数:

  • pattern : 一个字符串形式的正则表达式
  • flags 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
  • re.I 忽略大小写
  • re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
  • re.M 多行模式
  • re.S 即为' . '并且包括换行符在内的任意字符(' . '不包括换行符)
  • re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
  • re.X 为了增加可读性,忽略空格和' # '后面的注释

(2)re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

函数语法:

re.match(pattern, string, flags=0)

(3)re.search 扫描整个字符串并返回第一个成功的匹配。

函数语法:

re.search(pattern, string, flags=0)

注:

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

(4)findall

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

注意: match 和 search 是匹配一次 findall 匹配所有。

语法格式为:

findall(string[, pos[, endpos]])

参数:

string 待匹配的字符串。
pos 可选参数,指定字符串的起始位置,默认为 0。
endpos 可选参数,指定字符串的结束位置,默认为字符串的长度。

下面是实现的具体方法:

def findnum(string):
    comp=re.compile(-?[1-9]\d*)
    list_str=comp.findall(string)
    list_num=[]
    for item in list_str:
        item=int(item)
        list_num.append(item)
    return list_num

re.compile()的一些匹配参数:

  • [1-9]\d*      正整数
  • -[1-9]\d*   负整数
  • -?[1-9]\d* 整数
  • [1-9]\d*|0  非负整数
  • -[1-9]\d*|0   非正整数
  • [1-9]\d*\.\d*|0\.\d*[1-9]\d*$   正浮点数
  • -([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  负浮点数
  • -?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  浮点数

附python正则表达式抽取文本中的时间日期

使用python的正则表达式抽取文本中的年月日信息,如2020年5月19日。

def find_time(yanbao_txt, entity):
    paras = [para.strip() for para in yanbao_txt.split('\n') if para.strip()][:5]
    for para in paras:
        ret = re.findall(r'(\d{4})\s*[\./年-]\s*(\d{1,2})\s*[\./月-]\s*(\d{1,2})\s*日?', para)
        if ret:
            year, month, day = ret[0]
            time = '{}/{}/{}'.fORMat(year, month.lstrip(), day.lstrip())
            return time
    return None

总结

到此这篇关于Python利用正则表达式从字符串提取数字的文章就介绍到这了,更多相关Python正则字符串提取数字内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python利用正则表达式从字符串提取数字

本文链接: https://www.lsjlt.com/news/138236.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python利用正则表达式从字符串提取数字
    目录前言利用正则表达式从字符串提取数字附python正则表达式抽取文本中的时间日期总结前言 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 Pyt...
    99+
    2024-04-02
  • 如何用正则表达式从 Golang 字符串中提取数字?
    使用正则表达式从 golang 字符串中提取数字:正则表达式语法:[0-9]+ 匹配一个或多个十进制数字。使用 regexp 包:导入 regexp 包并编译正则表达式。使用 finda...
    99+
    2024-05-13
    golang 正则表达式 iphone
  • python如何用正则表达式提取字符串
    目录用正则表达式提取字符串1. 单个位置的字符串提取2. 连续多个位置的字符串提取用正则表达式提取字符串中的整数总结用正则表达式提取字符串 在日常工作中经常遇见在文本中提取特定位置字...
    99+
    2023-03-02
    python正则表达式 python提取字符串 正则提取字符串
  • python怎么用正则表达式提取字符串
    今天小编给大家分享一下python怎么用正则表达式提取字符串的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。用正则表达式提取字...
    99+
    2023-07-05
  • mysql 正则表达式 提取 指定字符
    目录 1.REGEXP 正则表达式2.REGEXP_REPLACE3.补充参考链接 1.REGEXP 正则表达式 # 查找字段中包含数字和字母的所有记录 SELECT 字段1 FROM 表1 where 字段1 R...
    99+
    2023-08-25
    mysql 正则表达式 数据库
  • Python正则表达式匹配字符串中的数字
    这篇文章主要介绍了Python正则表达式匹配字符串中的数字,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下1.使用“\d+”匹配全数字...
    99+
    2023-06-01
  • java如何用正则表达式匹配与提取字符串
    java.util.regex类支持用正则表达式来匹配和提取字符串,读者可以去官网查看java.util.regex的详细使用方法。 首先给出一个匹配字符串的例子(判断line是否符...
    99+
    2024-04-02
  • Python中怎么利用正则表达式替换字符串
    Python中怎么利用正则表达式替换字符串,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。替换所有匹配的子串用newstring替换subject中所有与正则表达...
    99+
    2023-06-17
  • java怎么用正则表达式匹配与提取字符串
    本文小编为大家详细介绍“java怎么用正则表达式匹配与提取字符串”,内容详细,步骤清晰,细节处理妥当,希望这篇“java怎么用正则表达式匹配与提取字符串”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先给出一个匹...
    99+
    2023-07-02
  • Python如何用正则表达式处理字符串
    在Python中,使用正则表达式处理字符串需要先导入re模块。然后可以使用re模块中的方法来进行匹配、搜索、替换等操作。 下面是一些...
    99+
    2024-04-03
    Python
  • 怎么使用java正则表达式获取字符串
    要使用Java正则表达式获取字符串,可以按照以下步骤进行操作:1. 导入`java.util.regex`包。在Java中,正则表达...
    99+
    2023-09-05
    java
  • Java字符串 正则表达式详解
    目录一、规则表1.字符2.字符类 .3.边界匹配符4.逻辑操作符5.量词二、Pattern类1.Pattern类的实例获取—compile方法2.split方法3.Pattern中匹...
    99+
    2024-04-02
  • 用 Golang 正则表达式提升字符串处理能力
    go 正则表达式可提升字符串处理能力,其语法遵循 posix 标准,提供了字符类、元字符、量词和分组等功能。创建正则表达式可使用 regexp.mustcompile 函数,匹配字符串可...
    99+
    2024-04-08
    golang
  • 怎么使用python正则表达式查找字符串
    使用Python的re模块来使用正则表达式查找字符串。首先,导入re模块:```pythonimport re```然后,定义一个正...
    99+
    2023-08-18
    python
  • Python字符串与正则表达式详细介绍
    目录一、字符串相关操作 二、正则表达式相关操作一、字符串相关操作  1.统计所输入字符串中单词的个数,单词之间用空格分隔。其运行效果如下图所示。 s=input(...
    99+
    2024-04-02
  • mysql字符串正则表达式及说明
    目录概述正则表达式运算符正则表达式语法概述 名称描述NOT REGEXP否定的REGEXPREGEXP字符串是否匹配正则表达式RLIKE字符串是否匹配正则表达式 正则表达式是指定复杂...
    99+
    2024-04-02
  • java利用正则表达式如何实现查找字符串
    java利用正则表达式如何实现查找字符串?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体如下:Hello.java:package hello;import ...
    99+
    2023-05-31
    java 正则表达式 字符串
  • python用正则表达式提取/匹配中文汉字
    目录python用正则表达式提取中文python正则如何匹配中文汉字总结python用正则表达式提取中文 Python re正则匹配中文,其实非常简单,把中文的unicode字符串转...
    99+
    2024-04-02
  • 正则表达式不包含特定字符串
    要实现一个正则表达式不包含特定字符串的模式,可以使用“负向预查”来实现。负向预查是一种零宽度断言,可以在匹配之前或之后断言某个位置不...
    99+
    2023-08-18
    正则表达式
  • python正则表达式对字符串的查找匹配
    目录常用的RegEx基础语法常用的RegEx函数以下为部分示例:总结Python中的正则表达式要用到re模块,下面先介绍一下正则表达式需要用到的特殊字符和说明 常用的RegEx基础语...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作