最近遇到需要处理一个很大文件的情况,需求是提取满足以`(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 为了增加可读性,忽略空格和 # 后面的注释
  • python利用正则表达式提取文本中特定内容 - ZhangHT97 - 博客园正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。 re 模块使 Python https://www.cnblogs.com/ZhangHT97/p/13427325.html

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

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

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

import re, sysfilename = "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 正则表达式 | 菜鸟教程

使用正则表达式提取文件中满足条件的内容相关推荐

  1. python使用正则表达式抽取文件中的IP地址

    python使用正则表达式抽取文件中的IP地址 IP正则 r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' 有效IP ((25[0-5]|2[0-4][0-9]|[01] ...

  2. java 正则表达式 提取ip_java正则表达式提取地址中的ip和端口号

    由于我需要用到java正则表达式提取地址中的ip和端口号,所以我就写了一个demo,测试一下,下面是demo public class Test0810_1 { public static void ...

  3. 文件循环读取_一个案例轻松认识Python文件处理提取文件中的数字

    1.文件打开 使用 open() 函数打开文件.它需要两个参数,第一个参数是文件路径或文件名,第二个是文件的打开模式.模式通常是下面这样的: "r",以只读模式打开,你只能读取文件 ...

  4. 利用正则表达式提取网页中Table内的数据

    利用正则表达式提取网页中Table内的数据 using System; using System.Collections.Generic; using System.Linq; using Syste ...

  5. php 正则 尖括号,php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符...

    PHP使用正则表达式提取字符串中尖括号<>.小括号().中括号[].大括号{}中的字符示例,需要的朋友可以参考下 代码如下: $str="你好(爱)[北京]{天安门}" ...

  6. 01. 利用正则表达式提取文章中的所有英文单词

    利用正则表达式提取文章中的所有英文单词 1.先创建一个Pattern对象, 模式对象,可以理解成一个正则表达式对象 Pattern pattern = Pattern.compile("[a ...

  7. 用 shell 语言提取文件中的信息到另一个文件夹中

    查找具有特定后缀的文件 #!/bin/sh # find the pdb files at current files. for i in `ls ./*.pdb` doecho $i done 提取 ...

  8. python提取文件中特定字符串

    目录 1. Python3文件操作 1.1 打开和关闭文件 1.1.1 open( ) 函数 1.1.2 close( ) 函数 1.2  读写文件 1.2.1 write( ) 函数 1.2.2 r ...

  9. 正则表达式提取字符串中的手机号码

    正则表达式提取字符串中的手机号码 1.正则表达式提取思路 1.先提取出来11位的数字组合 2.再判断这11位的数字组合是否符合要求 2.要用到的正则表达式功能 a.match() 用于提取()里面的符 ...

最新文章

  1. flask 基础 宏的使用
  2. 【神经网络架构】Pyramidal Convlution(PyConv):金字塔卷积,“即插即用“,提升你的网络性能
  3. mysql执行计划_mysql的sql执行计划详解
  4. boost::geometry::make用法的测试程序
  5. java io系列09之 FileDescriptor总结
  6. python保存数据_python各数据存储方法
  7. Unity 官方教程 学习
  8. python谱聚类算法_谱聚类 - python挖掘 - 博客园
  9. Ubuntu 18.04下QFIL刷机
  10. 利用XSLT来换XML的根
  11. python搬家具_Python面向对象实现案例———摆放家具
  12. 你不知道的JavaScript--Item29 DOM基础详解
  13. 联想a366t 刷android4,联想A366t线刷刷机教程(刷官方rom)
  14. 纸壳CMS可视化建站系统创建多语言网站
  15. 计算并返回x的平方根
  16. 设置Mysql字符集
  17. HM10.1码率控制模块代码详解(1)---------序列级码率控制类TEncRCSeq介绍
  18. 基于PIC16F876A的摇摇棒
  19. 免费的绘图和图表工具Tldraw
  20. YouTube音乐排行榜:全球总榜周榜(2022年7月16日)

热门文章

  1. c 语言怎么实现可视化编程,自定义编程语言的实现
  2. 方差、标准差、均方误差的总结
  3. 不知道什么是单元测试?6个实例够不够
  4. ajaxpro安装和使用---有人说ajaxpro是ajax的替代品
  5. 数字电视机顶盒的工作原理
  6. fets去除回车符号
  7. 终于,百度网盘等来了真正的对手
  8. 基于目标检测的海上舰船图像超分辨率研究
  9. linux安装软件apt或者编译安装说明
  10. blueprint 实例