AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

 谷歌+Bing+TT+MSN官方代理 
⚡️按条S5代理⚡️静态⚡️独享⚡️5G⚡️最干净<Wifi住宅+5G移动>IP代理指纹浏览器,就用AdsPower
Mediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️
Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线【官方】❤️搜索套利广告开户独立站⚡️开户投放
DuoPlus专注打造跨境电商云手机E.PN 虚拟卡BINOM TRACKER 60% OFF!比Adplexity还好用的Spy工具
MediaGo+Taboola+Ob开户百度国际MediaGo⚡️让产品狂奔全球百度国际,高点击转化,快速放量百度国际MediaGo,独家原生流量
ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理虚拟信用卡+独立站收款全球虚拟卡, 支持U充值
Facebook 批量上广告尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)FB 三不限源头 - 自助下户充值转款
各种主页、账单户、BM户(优势)⚡️个人户,bm户不限额,账单户一手BM分享户不限额9Proxy ⚡️ $0.04/IP, 无限带宽
FB二三解0.1元一个虚拟卡|PTM星际卡FB专用虚拟卡Google、Bing官方总代  联盟流量开户
FB账号资源/稳定靠谱/运行5年啦FB开户代投/三不限/白名单广告位出租 
查看: 25589|回复: 26

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

[复制链接]

38

主题

2274

广告币

2513

积分

高级会员

Rank: 4

积分
2513

社区QQ达人

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

使用道具 举报

23

主题

1229

广告币

2177

积分

高级会员

Rank: 4

积分
2177

社区QQ达人

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

使用道具 举报

55

主题

105

广告币

647

积分

中级会员

Rank: 3Rank: 3

积分
647

社区QQ达人

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

使用道具 举报

3

主题

38

广告币

58

积分

初级会员

Rank: 2

积分
58

社区QQ达人

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

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

2

主题

314

广告币

444

积分

中级会员

Rank: 3Rank: 3

积分
444

社区QQ达人

发表于 2017-12-1 08:50:15 | 显示全部楼层
懂点编程的话用读取字节的IO函数读取加转换处理,3个G大小没问题,再大就用内存映射的方法。
- q/ }8 D1 a" `' M6 x2 G! ]  I( J" Y% V6 i
不懂编程的话先将大文本分割成很多个小文件,再用你找到的那些工具处理。
QQ:2696779792
回复 支持 反对

使用道具 举报

59

主题

743

广告币

1970

积分

高级会员

Rank: 4

积分
1970

社区QQ达人

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

使用道具 举报

52

主题

739

广告币

1401

积分

高级会员

Rank: 4

积分
1401

社区QQ达人

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

使用道具 举报

12

主题

1704

广告币

2309

积分

高级会员

Rank: 4

积分
2309

社区QQ达人

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

使用道具 举报

38

主题

2274

广告币

2513

积分

高级会员

Rank: 4

积分
2513

社区QQ达人

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

使用道具 举报

3

主题

38

广告币

58

积分

初级会员

Rank: 2

积分
58

社区QQ达人

发表于 2017-12-1 13:09:44 | 显示全部楼层
http://tool.oschina.net/regex#
: T0 p! d! K1 |8 U本来想自己写一个python脚本,不过中午折腾rb格式,没折腾出来。
7 Q. `$ ]# o# C$ a3 q目前手动比较方便一点的就是,把内容放到上面这个正则工具里,点击右边的匹配邮箱,然后点击测试匹配。下面邮箱就全部匹配了。/ i  b! M0 X' S- T5 U
鼠标移动上去,拉取,选中,复制到其他txt,excel里。搞定。

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

103

主题

1819

广告币

2699

积分

高级会员

Rank: 4

积分
2699

社区QQ达人

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

使用道具 举报

38

主题

2274

广告币

2513

积分

高级会员

Rank: 4

积分
2513

社区QQ达人

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

使用道具 举报

26

主题

1017

广告币

2641

积分

高级会员

Rank: 4

积分
2641
发表于 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

主题

2274

广告币

2513

积分

高级会员

Rank: 4

积分
2513

社区QQ达人

 楼主| 发表于 2017-12-3 23:01:50 | 显示全部楼层
alibaba 发表于 2017-12-3 21:25. u& L+ f( @" e, w- s$ e( I
EmEditor(文本编辑器)。官方说的处理248G的文件也不在话下。然后用正则表达式把非邮箱的字符替换为空白, ...

# c3 }' ^9 j$ N* [- X大神能给个正则表达式替换的例子吗?
回复 支持 反对

使用道具 举报

19

主题

289

广告币

531

积分

中级会员

Rank: 3Rank: 3

积分
531

社区QQ达人

发表于 2017-12-4 00:39:19 | 显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑   w* [" S! W4 R" ^# G- O( V

7 x, @7 Y/ B$ V0 k) N花了几分钟帮你写了下 & V% x7 v. A7 r; ^: Y
例如源文件为这个txt
& _& N4 v- U/ t0 y6 S➜  ~ cat x.txt
. K4 N0 c/ T8 Ihitest1 A4 M- ]* m( O7 o- @
[email protected]8 f* Y( H# n3 v0 X/ V  T2 A8 o
hi  [email protected] test
% q9 R; O; ]9 ]" u' V- k' G2 g[email protected]  [email protected]& n) T/ \$ v2 Y6 a( b6 ]
执行后,得到result.txt
2 w  W% m: X% `0 G$ M➜  ~ cat result.txt ; Q6 x5 {+ v5 I5 ?
[email protected]& v$ I5 g4 S% d  q* Z- [
[email protected]3 ?) R8 m6 @4 ~  F2 Q
[email protected]
2 D! ^1 s1 e4 E/ N' u5 j' i4 C[email protected]! f2 Q7 l0 h6 D1 V, M0 r% ?
- E1 T" E  t' F/ l
代码如下:
* A0 }/ `/ m% M, M) Y2 o
  1. <?php9 Q! E0 B8 D+ k5 L; h
  2. $file = 'x.txt';
    9 U& }2 V9 q1 r" m: @6 o: w0 x4 G
  3. $fp = fopen($file, 'r');, f# s, |1 M9 w. U5 z
  4. if (!$fp) {  B0 T* K% H; e  M7 [
  5.     exit('failed to open'.$file);$ M# A5 {3 T( f# O
  6. }) Y  m' A6 u& E" n( ^8 i% }5 u9 n! P
  7. $lineNumber = 0;
    2 l& ~3 @. f9 j- v
  8. while($line = fgets($fp)) {
    1 K; p1 P0 e: u& ~
  9.     $lineNumber++;$ |/ {! u) ^+ h! Y3 F
  10.     $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';* i8 r. n. A! ^- @% ^4 k$ m, d
  11.     preg_match_all($pattern, $line, $matches);4 w& w) w/ ^. h
  12.     if (!empty($matches[0])) {- f- p/ Z" P" }; N$ p) z4 e/ d
  13.         foreach ($matches[0] as $mail) {4 s+ X% P* s4 R2 _# L
  14.             echo $mail.' found from line '.$lineNumber.PHP_EOL;
    7 F& p: m+ B2 r" F
  15.             file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);
    , N' j* \' ?8 u& N8 n
  16.         }
    1 q' h" g9 l, ^/ D& K1 g
  17.     }* c* N( n. D  e# a5 \
  18. }
    - W( ]4 Z& n$ F$ r
  19. echo "All Done";
    7 K* w! i7 Q8 {7 [3 _
复制代码
功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重) @5 Y* J' Y6 W$ @2 y0 N- X4 w+ I
使用:代码里面的源文件是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, 2024-11-14 14:28 , Processed in 0.051646 second(s), 15 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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