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

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

本帖最后由 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
1

评分人数

本帖最后由 happy886rr 于 2016-4-2 15:01 编辑

回复 17# codegay
行啊。细节都注意了。今天才知道findstr /be "[0-9]*"并不是匹配纯数字。
1

评分人数

TOP

  1. sed -n "s/&Uin=\(\d*\)/\1/p" "1.txt"&pause
复制代码
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

默认五数字以上才都是QQ,用一个F就可以:
  1. f -o:"k" -ric:"\d{5,}" 1.txt&pause
复制代码
匹配到uin的话,需要两层.
  1. f -o:"k" -ric:"&Uin=(\d+)" 1.txt|f -o:"k" -ric:"\d{5,}"&pause
复制代码
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 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
复制代码
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 13# codegay
是的,所以在加个管道findstr 纯数字

TOP

回复 12# happy886rr


    fr 默认会把不配的行也输出...超烦.
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

  1. fr 1.txt -stdout -ric:"&Uin=" /t:""
复制代码
回复 1# 流氓王朝

TOP

回复 10# ivor

因为代码短,所以就看了下

TOP

回复 9# sishentibu


    这都被你发现了
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 5# ivor


    &Uin=[1-9][1-9]*
这段应该改为如下吧?
&Uin=[1-9][0-9]*

TOP

本帖最后由 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
复制代码

TOP

本帖最后由 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)
复制代码
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

  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)
复制代码
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 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
复制代码
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

返回列表