找回密码
 立即注册

QQ登录

只需一步,快速开始

PropellerAds
Google-Bing-Mediago-Criteo开户
⚡️按条S5代理⚡️静态⚡️独享⚡️5GMediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】
FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线
【官方】❤️搜索套利买量投流开户独立站⚡️开户投放Google FB TK游戏代投⚡️E.PN 虚拟卡⚡️
BINOM TRACKER 60% OFF!比Adplexity还好用的Spy工具ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理
虚拟信用卡+独立站收款全球虚拟卡, 支持U充值【15 年团队 - 广告自动化系统、定制开发】【ActionKey】Meta API 桥接令牌
尤里改 - FB 稳定投放【神盾 AI】Meta 广告资产防护 永久免费FB 三不限源头 - 自助下户充值转款各种主页、账单户、BM户(优势)
IPCola原生住宅IP⚡️$1.8/条双ISPFB资源,账单户,分享户,国内一手TK加白户/二解户/FB海外户/GG老户最大欧洲Nutra网盟BA找量
FB高权重耐操个号⚡️稳定过审FB企业户海外户,授信户,TK加白户联盟收款/海外资金下发/服贸结汇✔Taboola海外户源头
广告位出租虚拟卡返佣1%,国内持牌机构  
查看: 28351|回复: 26

[讨论] 求助从大文本中提取邮件地址

[复制链接]

38

主题

2640

广告币

2840

积分

高级会员

积分
2840

社区QQ达人

发表于 2017-12-1 00:08:03 | 显示全部楼层 |阅读模式
Influxtec
本人有一个1G大的文本文件,里面是一些乱七八糟的文字,但是有部分邮箱地址 ,我想把这些邮箱地址提取出来 ,有什么好办法吗?试了好几个提取工具,连文本都打不开,打开文本超过5M就没反应了,有更好的办法吗?江湖救急!!谢谢!!!5 p+ F/ J* v+ ^9 ~
相关帖子
回复

使用道具 举报

23

主题

1361

广告币

2307

积分

高级会员

积分
2307

社区QQ达人

发表于 2017-12-1 00:14:04 | 显示全部楼层
PHP 一行一行的读取 然后从每一行里面正则表达式去匹配邮箱 应该是可以搞定的
回复 支持 1 反对 0

使用道具 举报

55

主题

105

广告币

647

积分

中级会员

积分
647

社区QQ达人

发表于 2017-12-1 08:30:59 | 显示全部楼层
1G  分分钟搞定
回复 支持 反对

使用道具 举报

3

主题

38

广告币

58

积分

初级会员

积分
58

社区QQ达人

发表于 2017-12-1 08:39:37 | 显示全部楼层
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
' J" c( o7 z: K/ K这个正则可以匹配,不过具体要用其他工具来实现匹配。

评分

参与人数 2广告币 +7 收起 理由
风儿 + 5 赞一个!
chable + 2 可以结合使用EMEDITOR

查看全部评分

回复 支持 反对

使用道具 举报

2

主题

314

广告币

444

积分

中级会员

积分
444

社区QQ达人

发表于 2017-12-1 08:50:15 | 显示全部楼层
懂点编程的话用读取字节的IO函数读取加转换处理,3个G大小没问题,再大就用内存映射的方法。* J9 K. ]" S# L

# D$ B" K1 h3 p0 ^6 q不懂编程的话先将大文本分割成很多个小文件,再用你找到的那些工具处理。
QQ:2696779792
回复 支持 反对

使用道具 举报

60

主题

837

广告币

2063

积分

高级会员

积分
2063

社区QQ达人

发表于 2017-12-1 09:46:01 | 显示全部楼层
hadoop,3个t也能给你搞了
回复 支持 反对

使用道具 举报

53

主题

806

广告币

1468

积分

高级会员

积分
1468

社区QQ达人

发表于 2017-12-1 10:31:22 | 显示全部楼层
写个正则匹配。。。。
我是C罗!!!
回复 支持 反对

使用道具 举报

12

主题

2053

广告币

2625

积分

高级会员

积分
2625

社区QQ达人

发表于 2017-12-1 12:07:47 | 显示全部楼层
各显神通.~~  我就找个漂亮的小妹 让她慢慢处理吧...
回复 支持 反对

使用道具 举报

38

主题

2640

广告币

2840

积分

高级会员

积分
2840

社区QQ达人

 楼主| 发表于 2017-12-1 12:28:08 来自手机 | 显示全部楼层
大神真多啊!有没有现成的工具推荐一下?自己编程太麻烦了
回复 支持 反对

使用道具 举报

3

主题

38

广告币

58

积分

初级会员

积分
58

社区QQ达人

发表于 2017-12-1 13:09:44 | 显示全部楼层
http://tool.oschina.net/regex#, G- Z! N7 f' W% ]* @
本来想自己写一个python脚本,不过中午折腾rb格式,没折腾出来。/ _$ z4 }/ E' I" Z9 u; O. ]2 {
目前手动比较方便一点的就是,把内容放到上面这个正则工具里,点击右边的匹配邮箱,然后点击测试匹配。下面邮箱就全部匹配了。% x) Z5 {( b: F( x, V
鼠标移动上去,拉取,选中,复制到其他txt,excel里。搞定。

评分

参与人数 1广告币 +5 收起 理由
风儿 + 5

查看全部评分

回复 支持 反对

使用道具 举报

103

主题

1830

广告币

2709

积分

高级会员

积分
2709

社区QQ达人

发表于 2017-12-1 13:31:21 | 显示全部楼层
EDITPLUS+正则
回复 支持 反对

使用道具 举报

38

主题

2640

广告币

2840

积分

高级会员

积分
2840

社区QQ达人

 楼主| 发表于 2017-12-1 17:15:30 | 显示全部楼层
大神们 是1G的文本文件 不可能手工粘贴上去。更不是一个文本编辑器能处理的
回复 支持 反对

使用道具 举报

27

主题

1058

广告币

2682

积分

高级会员

积分
2682
发表于 2017-12-3 21:25:04 | 显示全部楼层
EmEditor(文本编辑器)。官方说的处理248G的文件也不在话下。然后用正则表达式把非邮箱的字符替换为空白,把邮箱留下就可以了。

点评

大神 我用 正则[-0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+\.[a-zA-Z]{2,4} 绿色高亮了所有EMAIL,问题是我如何给他取反呢?把不是emial的全部替换为空格呢?  详情 回复 发表于 2017-12-4 11:44
大神能给个正则表达式替换的例子吗?  详情 回复 发表于 2017-12-3 23:01

评分

参与人数 1广告币 +2 收起 理由
affempire + 2 NB!

查看全部评分

回复 支持 反对

使用道具 举报

38

主题

2640

广告币

2840

积分

高级会员

积分
2840

社区QQ达人

 楼主| 发表于 2017-12-3 23:01:50 | 显示全部楼层
alibaba 发表于 2017-12-3 21:25+ H2 z, i/ Q; T4 B* f2 C' G
EmEditor(文本编辑器)。官方说的处理248G的文件也不在话下。然后用正则表达式把非邮箱的字符替换为空白, ...

. D8 m% {3 p; g大神能给个正则表达式替换的例子吗?
回复 支持 反对

使用道具 举报

19

主题

290

广告币

532

积分

中级会员

积分
532

社区QQ达人

发表于 2017-12-4 00:39:19 | 显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑 - u- y/ R& c# ?" ]% y

; a3 V1 t1 T9 T花了几分钟帮你写了下 / `8 m0 l' V* r( S* k
例如源文件为这个txt+ C0 c& r4 m8 x4 ~7 O
➜  ~ cat x.txt; W0 j+ r3 d- L% A/ d2 I
hitest3 }1 ?( L4 e0 W
[email protected]0 j& [- A) [9 o0 }# D* |$ y" F
hi  [email protected] test
- |8 F8 k6 z9 {" d: _4 p% Q7 [[email protected]  [email protected]  b# a+ Z# }$ _& \8 m- x- C- S6 |2 D- I
执行后,得到result.txt
& @& w( X/ l' Z) {9 Y8 L' P➜  ~ cat result.txt
! B- }. ~- J; g! B# L% g; ~4 T[email protected]) K0 c. J: v4 e5 [3 i! A$ {+ L
[email protected]! w2 j* S+ ~# n7 M
[email protected]
/ s4 Z( e0 k3 f" ^9 Q7 A( x. S9 u; P[email protected]
9 q- z% d. K0 p% W! u8 F$ y+ W' e. a4 C* T" d8 f& N' n: B
代码如下:
9 V! d9 p4 F9 b& W- l2 E
  1. <?php
    9 u; r2 g2 D! J+ K1 ?
  2. $file = 'x.txt';' |7 v8 A' `) ?) o6 \9 {, }
  3. $fp = fopen($file, 'r');
    5 }. E" W, ?4 f% L3 I- S
  4. if (!$fp) {' C' X+ ]! a4 h4 n  R' g, N
  5.     exit('failed to open'.$file);( G/ l7 N" l7 F( b7 H1 l  j
  6. }
    ( |% F! C5 Z* ?5 F& H
  7. $lineNumber = 0;
    * C6 x( N0 B9 @6 i
  8. while($line = fgets($fp)) {: }8 F8 l! O' h
  9.     $lineNumber++;# u% r$ C  q$ ~% t! W* y) e0 V
  10.     $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';) I. {/ V3 p. U; V
  11.     preg_match_all($pattern, $line, $matches);
    9 m. r+ _0 f9 ~' U4 M0 A
  12.     if (!empty($matches[0])) {) ?9 w/ O, ?( R2 A7 C" P
  13.         foreach ($matches[0] as $mail) {& d+ Q, b! I2 a( P0 T* v
  14.             echo $mail.' found from line '.$lineNumber.PHP_EOL;/ K. }4 l0 T" O, t& R. T
  15.             file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);
    8 V6 u2 s' m$ \8 K6 a
  16.         }
    ! \, X  Q/ m0 W6 v8 k( Y/ X% ^7 j
  17.     }
    ! O' ?! w( _7 n" z& t
  18. }* S. B. q  R2 r
  19. echo "All Done";
    8 k: A5 D0 m! J4 l; x- C# n. A
复制代码
功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重+ u* U9 |& j7 t' x
使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php  然后  php getMail.php 结果保存在result.txt里面

点评

谢谢大神。你这个脚本处理速度快吗?我3G的文本文件多久能处理完呢?  详情 回复 发表于 2017-12-4 10:43

评分

参与人数 2广告币 +7 收起 理由
leeker + 5 乐于助人
iyahoo + 2 很给力!

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们|联系我们|DMCA|广告服务|小黑屋|手机版|Archiver|Github|网站地图|AdvertCN

GMT+8, 2026-10-23 20:54 , Processed in 0.083890 second(s), 24 queries , Gzip On.

Copyright © 2001-2026, AdvertCN

Proudly Operating in Hong Kong.

快速回复 返回顶部 返回列表