IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 使用正则表达式提取文件中满足条件的内容 -> 正文阅读

[Python知识库]使用正则表达式提取文件中满足条件的内容

????????最近遇到需要处理一个很大文件的情况,需求是提取满足以`(ASCII 十进制 96)开头’结束的字符串,例如xxxxx`abcdedg'。

????????尝试在shell脚本中用正则表达式提取。有点曲折,后来通过python实现了,后续的工作就顺利很多。

????????python 的re 模块提供了compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() , search() 和findall()?这几个函数使用。菜鸟教程是个好网站!

语法格式为:

re.compile(pattern[, flags])

参数:

  • pattern?: 一个字符串形式的正则表达式

  • flags?: 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

    1. re.I?忽略大小写
    2. re.L?表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
    3. re.M?多行模式
    4. re.S?即为?.?并且包括换行符在内的任意字符(.?不包括换行符)
    5. re.U?表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
    6. re.X?为了增加可读性,忽略空格和?#?后面的注释

????????看着还是挺抽象, 比如我这个例子,里面的pattern 不知道给什么,参考了一位大神的帖子,得到答案,真的不胜感激!

????????原来可以这样re.compile('<开始字符>.+<结束字符>')就表示匹配以<开始字符> 到<结束字符> 的内容。我这种情况,re.compile('`.+\'') 就是我想要的了。注意此处用到了转义字符\, 因为和包正则表达式的单引号冲突。

????????同时还学到,如果要匹配<开始字符>之前以及<结束字符>之后的内容,re.compile('<开始字符>(.+)<结束字符>')

import re, sys

filename = "multi.error"
result = []
i = 0
pattern = re.compile('`.+\'')
with open(filename, "r") as f:
        lines = f.readlines()
        with open ("result.txt", "w") as p:
                for line in lines:
                        result = pattern.findall(line)
                        #因为每行只会有一个满足条件的内容,所以取数据第0个
                        p.write(result[0])

?如果line =?xxxxx`abcdedg'

运行结果如下:

`abcdedg'

靡不有初,鲜克有终。好好学习,天天向上!

参考内容:

1.?python利用正则表达式提取文本中特定内容 - ZhangHT97 - 博客园

2.?Python 正则表达式 | 菜鸟教程

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-13 11:24:31  更:2021-10-13 11:25:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:38:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码