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

python怎么用正则表达式提取字符串

2023-07-05 08:07:14 302人浏览 安东尼

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

摘要

今天小编给大家分享一下python怎么用正则表达式提取字符串的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。用正则表达式提取字

今天小编给大家分享一下python怎么用正则表达式提取字符串的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    用正则表达式提取字符串

    在日常工作中经常遇见在文本中提取特定位置字符串的需求。

    Python的正则性能好,很适合做这类字符串的提取,正则表达式的提取一般分两种情况,一种是提取在文本中提取单个位置的字符串,另一种是提取连续多个位置的字符串。

    日志分析会遇到这种情况。

    1. 单个位置的字符串提取

    这种情况我们可以使用(.+?)这个正则表达式来提取. 举例,一个字符串"a123b",如果我们想提取ab之间的值123,可以使用findall配合正则表达式,这样会返回一个包含所以符合情况的list,代码如下:

    import restr = "a123b"print(re.findall(r"a(.+?)b",str))#输出['123']

    1.1贪婪和非贪婪匹配

    如果我们有一个字符串”a123b456b”,如果我们想匹配a和最后一个b之间的所有值而非a和第一个出现的b之间的值,可以用?来控制正则贪婪和非贪婪匹配的情况. 代码如下:

    import restr = "a123b456b" print(re.findall(r"a(.+?)b", str))#输出['123']#?控制只匹配0或1个,所以只会输出和最近的b之间的匹配情况 print(re.findall(r"a(.+)b", str))#输出['123b456'] print(re.findall(r"a(.*)b", str))#输出['123b456']

    1.2多行匹配

    如果你要多行匹配,那么需要加上re.S和re.M标志. 加上re.S后, .将会匹配换行符,默认.不会匹配换行符. 代码如下:

    str = "a23b\na34b" re.findall(r"a(\d+)b.+a(\d+)b", str)#输出[]#因为不能处理str中间有\n换行的情况 re.findall(r"a(\d+)b.+a(\d+)b", str, re.S)#s输出[('23', '34')]

    加上re.M后,^$标志将会匹配每一行,默认^和$只会匹配第一行.

    代码如下:

    str = "a23b\na34b" re.findall(r"^a(\d+)b", str)#输出['23'] re.findall(r"^a(\d+)b", str, re.M)#输出['23', '34']

    2. 连续多个位置的字符串提取

    这种情况我们可以使用(?P<name>&hellip;)这个正则表达式来提取.

    举例:

    如果我们有一行WEBserver的access日志:'192.168.0.1 25/Oct/2012:14:46:34 "GET /api Http/1.1" 200 44 "http://abc.com/search" "Mozilla/5.0"',我们想提取这行日志里面所有的内容,可以写多个(?P<name>expr)来提取,其中name可以更改为你为该位置字符串命名的变量,expr改成提取位置的正则即可.

    代码如下:

    import reline ='192.168.0.1 25/Oct/2012:14:46:34 "GET /api HTTP/1.1" 200 44 "http://abc.com/search" "Mozilla/5.0"'reg = re.compile('^(?P<remote_ip>[^ ]*) (?P<date>[^ ]*) "(?P<request>[^"]*)" (?P<status>[^ ]*) (?P<size>[^ ]*) "(?P<referrer>[^"]*)" "(?P<user_agent>[^"]*)"')regMatch = reg.match(line)linebits = regMatch.groupdict()print(linebits)for k, v in linebits.items() :    print(k+": "+v)

    输出的结果为:

    status: 200
    referrer:  
    request: GET /api HTTP/1.1
    user_agent: Mozilla/5.0
    date: 25/Oct/2012:14:46:34size: 44
    remote_ip: 192.168.0.1

    用正则表达式提取字符串中的整数

    直接上代码吧~

    import rere.findall("\d+","asd1234")

    以上就是“python怎么用正则表达式提取字符串”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

    --结束END--

    本文标题: python怎么用正则表达式提取字符串

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

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

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

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

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

    • 微信公众号

    • 商务合作