标题: [文本处理] BAT如何提取txt文件中包含某字符串的后几位 [打印本页]
作者: momoliang 时间: 2019-7-5 19:32 标题: BAT如何提取txt文件中包含某字符串的后几位
本帖最后由 momoliang 于 2019-7-5 20:00 编辑
例如 1.txt:
add('msrmc','啦啦啦
('zjlxmc','身份证');add('zh','123456789012345678
;add('msrdh','45678912345')
想提取名字和身份证和手机号码需要结果为:
啦啦啦
123456789012345678
45678912345
输出到2.txt
文本上面有上百个信息和各种代码实在太乱
求助各位大佬
作者: zaqmlp 时间: 2019-7-5 20:25
没说清楚什么特征呀,把文件打包传上来吧
作者: momoliang 时间: 2019-7-5 20:43
回复 2# zaqmlp
add('msrmc','的后3个字
add('zh','的后18个字符
add('msrdh','的后11个字符
提取出来就可以了原TXT文件是客户购房信息不好透露 麻烦大佬了
作者: zaqmlp 时间: 2019-7-5 21:29
回复 3# momoliang - @echo off
- set info=互助互利,支付宝扫码头像,感谢赞助
- rem 有问题,可加QQ956535081及时沟通
- title %info%
- cd /d "%~dp0"
- set "input=1.txt"
- set "output=2.txt"
- powershell -NoProfile -ExecutionPolicy bypass ^
- $text=[IO.File]::ReadAllText('%input%', [Text.Encoding]::Default);^
- $m=[regex]::matches($text,'add\(''msrmc'',''([^^'']*?)''^|add\(''zh'',''([^^'']*?)''^|add\(''msrdh'',''([^^'']*?)''');^
- [System.Collections.ArrayList]$s=@();^
- foreach($item in $m){^
- [void]$s.add($item.groups[0].value.split(',')[1].trim(''''));^
- };^
- [IO.File]::WriteAllLines('%output%', $s, [Text.Encoding]::Default);
- echo;%info%
- pause
复制代码
作者: WHY 时间: 2019-7-6 09:57
本帖最后由 WHY 于 2019-7-6 10:02 编辑
- grep -P -o "(?<='msrmc',')[^']*|(?<='zh',')\d{18}|(?<='msrdh',')\d{11}" 1.txt > 2.txt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |