[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理如何提取文本中的邮箱地址?

本帖最后由 pcl_test 于 2016-11-16 19:05 编辑

祝大家新年快乐


张三        13366325775(手机)
E-mail:        970655918@qq.com
13439881949(手机)李四
E-mail:        sh1009i@163.com
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复  battab
附件中有很多类似这样的不规则的行:用 find /i "mail" 1.txt 或者用for取第二列都会遗漏
apang 发表于 2014-2-16 13:20


请问,用“@”符号作为搜索判断依据可以吗?
为什么以上几位老大都没用啊?

TOP

本帖最后由 apang 于 2014-2-16 13:22 编辑

回复 12# battab
附件中有很多类似这样的不规则的行:
  1. 谢华电子邮箱:349172507@qq.com移动电话:15311318739
  2. 王力飞电话:13811074493|邮箱 ]wanglifeidv@126.com
  3. 臧丽媛联系方式:13366640525 邮箱地址:up2013tess@foxmail.com
复制代码
用 find /i "mail" 1.txt 或者用for取第二列都会遗漏

TOP

回复 9# apang


    fnd,findstr为什么会漏掉匹配数据,请指教?
学习中

TOP

回复 11# mick00034


    re.Pattern = "[\w\-\.]+@.+\.(com|cn|net)"
换成
re.Pattern = "1\d{10}"
1

评分人数

TOP

本帖最后由 mick00034 于 2014-2-10 07:49 编辑

回复 10# apang
您说的很对,数据差几十个,如果原始数据大的话,就差更多了,谢谢热心帮助,

弱弱的问一下,您的代码更改一点,是否也适用于提取附件里的电话号码?学习了

TOP

本帖最后由 apang 于 2014-2-10 00:11 编辑

以#3附件为例,有效邮箱地址1972个,用find或findstr会漏掉很多。
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. txt = fso.OpenTextFile("1.txt",1,false,-1).ReadAll
  3. Set re = New RegExp
  4. re.Pattern = "[\w\-\.]+@.+\.(com|cn|net)"
  5. re.IgnoreCase = True
  6. re.Global = True
  7. For Each m in re.Execute(txt)
  8.     s = s & m & vbCrLf
  9. Next
  10. fso.OpenTextFile("2.txt",2,true).Write s
复制代码
1

评分人数

TOP

本帖最后由 battab 于 2014-2-9 21:50 编辑

回复 7# mick00034
  1. @echo off
  2. for /f "tokens=2 " %%i in ('find/i "@" 1.txt') do echo %%i>>2.txt
复制代码
6#随便给点样例就好了,搞那么长有点浪费。
1

评分人数

学习中

TOP

本帖最后由 mick00034 于 2014-2-10 09:15 编辑

回复 6# 522235677

您的代码应该是没问题的,只是小弟不会导出那个效果呀,能指点一下就谢谢了。

是我弄错了,,,已经解决

TOP

我能给你有问题的代码?

TOP

回复 4# 522235677

结果很多邮件不完整,,,每一行前多了il:
il:        [email]970655918@qq.com[/email]
il:        [email]sh1009i@163.com[/email]
il:        dier
il:        m
il:        [email]903982792@qq.com[/email]
il:        [email]835085702@qq.com[/email]
il:        [email]zz360278227@126.com[/email]
il:        [email]272746276@qq.com[/email]
il:        [email]cxy_vision@163.com[/email]
il:        [email]605525195@qq.com[/email]
il:        liu
il:        [email]1203482977@qq.com[/email]

TOP

本帖最后由 522235677 于 2014-2-9 17:55 编辑

回复 3# mick00034


    @echo off
for /f "tokens=2 delims=$" %%i in ('find /i "mail" 1.txt') do echo %%i
pause
把$换成tab
1

评分人数

TOP

回复 2# 522235677

好像不行呀,,附件上传了,谢谢哈

TOP

本帖最后由 522235677 于 2014-2-9 15:48 编辑
  1. @echo off
  2. for /f "tokens=2" %%i in ('findstr /i "mail" 1.txt') do echo %%i
  3. pausee
复制代码

TOP

返回列表