【python脚本】正则匹配提取所需字符串

🌟🌟🌟🌟起因

由于进行某平台的告警分析,一些恶意文件攻击,要整合资料,其中要单独列出恶意邮件发件人和主题,然而这些东西全在一个报文里,数量又很大,一个一个粘就有点离谱了。

为了提高生产力写了个简单的脚本,功能很简单,正则匹配也不是很完善,还有很大优化空间,可根据需要自行优化,我主要是图快。

🌟🌟🌟说明

1、将需要进行提取的原文件保存至.txt文件,其他文件也可以,网上搜一下其他文件python读取和写入的方法就可以了;

2、根据需要新建一个或多个提取后保存的txt文件;

3、根据需要更改正则匹配;(我在跑之前,对原数据提前进行了处理,在excel里将一些特殊符号都替换成了空,不替换的话网上搜一下特殊字符的正则匹配方法就可以了)

🌟🌟脚本代码

import re

##打开要提取的源文件,并逐行读取
with open ('/Users/huangxiaohan/Desktop/script/匹配mail/mail.txt',encoding='utf-8') as f:
    data=f.readlines()

##打开提取之后要保存的文件,一个保存邮件主题,一个保存邮件收件人
mailout_file=open(r'/Users/huangxiaohan/Desktop/script/匹配mail/mailout.txt','w')
mailout2_file=open(r'/Users/huangxiaohan/Desktop/script/匹配mail/mailout2.txt','w')

##定义两个正则匹配,可以查询正则匹配自行优化,我比较赶时间,写的随便
pattern1 = re.compile('(?<=[题]).*?(?=[相])')
pattern2 = re.compile('(?<=[人]).*?(?=[日])')

##读取源文件逐行进行正则匹配,并将list格式去掉中括号
for content1 in data:     #逐行读取
    result1 = re.findall(pattern1, content1)
    result1 = ','.join(str(i) for i in result1)
    print(result1)
    mailout_file.write(result1)
    mailout_file.write("\n")

for content2 in data:     #逐行读取
    result2 = re.findall(pattern2, content2)
    result2 = ','.join(str(i) for i in result2)
    print(result2)
    mailout2_file.write(result2)
    mailout2_file.write("\n")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haoaaao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值