找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 77035|回复: 17

[文本处理] 如何提取出一个文本中的QQ号码

[复制链接]
发表于 2016-3-31 19:57:09 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-4-2 15:34 编辑

我在论坛找到一个教程  代码如@echo off
(for /f "tokens=5 delims==&]" %%i in ('findstr /i "&Uin=[1-9][0-9]*[&\]]" "*.txt"') do echo %%i)>qq.txt
pause

把此代码保存为1.bat 与下面的文本保存为2.txt放在同一个文件夹下 运行1.bat 可输出qq.txt  但是为空  

TXT文本如下
天天爱吃鱼
&Uin=78695

52love
&Uin=90486

kitain
&Uin=93215

苍小虎
&Uin=232209

lightair
&Uin=233167

zxwax
&Uin=277150

草 哲
&Uin=337479

风子
&Uin=353679

-浅浅风
&Uin=427157

joye
&Uin=439847

评分

参与人数 1PB -2 收起 理由
pcl_test -2 未按版规发帖

查看全部评分

发表于 2016-3-31 20:06:33 | 显示全部楼层
长文本应只发关键部分,或放网盘
发表于 2016-3-31 20:19:56 | 显示全部楼层
本帖最后由 pcl_test 于 2016-3-31 23:10 编辑

第三方
  1. sed -n "s/&Uin=\([1-9][0-9]*\)/\1/p" "1.txt">"2.txt"
复制代码
 楼主| 发表于 2016-3-31 20:33:56 | 显示全部楼层
听不懂啊 能讲明白一点吗 就是把这个代码保存成1.bat 然后运行吗
发表于 2016-3-31 21:35:02 | 显示全部楼层
本帖最后由 ivor 于 2016-4-1 22:43 编辑

回复 1# 流氓王朝
  1. @echo off
  2. (for /f "tokens=1,2 delims==" %%i in ('findstr /i "&Uin=[1-9][0-9]*" "*.txt"') do echo %%j)>qq.txt
  3. pause
复制代码
发表于 2016-4-1 01:11:01 | 显示全部楼层
  1. """
  2. python
  3. 2016年4月1日 01:05:09 codegay
  4. """
  5. import re
  6. txt=open("qq.txt").read()
  7. result=re.findall(r"""&Uin=(\d+)""",txt)
  8. print(result)
复制代码
发表于 2016-4-1 01:24:48 | 显示全部楼层
本帖最后由 codegay 于 2016-4-1 01:26 编辑
  1. #=
  2. julia正则提取文本中的QQ号.jl
  3. 2016年3月31日 21:51:50 codegay
  4. 练习一下Julia的正则表达式
  5. =#
  6. txt=open(readlines,"a.txt")
  7. filter!(r"&Uin=(\d+)",txt)
  8. f=open("result.txt","w+")
  9. for r in txt
  10.     write(f,match(r"&Uin=(\d+)",r).captures[1]*"\r\n")
  11. end
  12. close(f)
复制代码
发表于 2016-4-1 02:02:35 | 显示全部楼层
本帖最后由 CrLf 于 2016-4-1 02:04 编辑

hta:
  1. @mshta http://bathome.net/s/hta/?string "type('2.txt').replace(/^(?!&Uin=\d+)/gm,'').match(/\d+$/mg)" >qq.txt
复制代码
发表于 2016-4-1 22:39:01 | 显示全部楼层
回复 5# ivor


    &Uin=[1-9][1-9]*
这段应该改为如下吧?
&Uin=[1-9][0-9]*
发表于 2016-4-1 22:43:01 | 显示全部楼层
回复 9# sishentibu


    这都被你发现了
发表于 2016-4-2 11:47:10 | 显示全部楼层
回复 10# ivor

因为代码短,所以就看了下
发表于 2016-4-2 13:51:25 | 显示全部楼层
  1. fr 1.txt -stdout -ric:"&Uin=" /t:""
复制代码
回复 1# 流氓王朝
发表于 2016-4-2 13:58:32 | 显示全部楼层
回复 12# happy886rr


    fr 默认会把不配的行也输出...超烦.
发表于 2016-4-2 14:00:44 | 显示全部楼层
回复 13# codegay
是的,所以在加个管道findstr 纯数字
发表于 2016-4-2 14:12:29 | 显示全部楼层
本帖最后由 codegay 于 2016-4-2 15:50 编辑

f的-o:"k"参数加fr替换
  1. f -o:"k" -ric:"&Uin=(\d+)" 1.txt -stdout|fr -stdout -ric:"&Uin=" /t:""&pause
复制代码
可以省掉-stdout参数.
  1. f -o:"k" -ric:"&Uin=(\d+)" 1.txt |fr -ric:"&Uin=" /t:""&pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:33 , Processed in 0.020702 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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