标题: [文本处理] [已解决]批处理如何提取文本内的指定内容? [打印本页]
作者: zjw767676 时间: 2016-2-17 22:18 标题: [已解决]批处理如何提取文本内的指定内容?
本帖最后由 zjw767676 于 2016-2-18 18:18 编辑
需要提取index.txt中的“/dushi/20150506/1237296.html”之类的输入到1.txt:-
- * 其他类型</book/qita/>
- * 全本小说</change/quanben/>
- *
-
- 加入书签 | 推荐本书 | 返回书页</book/dushi/1844/> | 我的书架 | 手机阅读<http://m.7ddw.com/chapter/dushi/1844/>
-
- 顶点小说<http://www.7ddw.com> -> 都市言情</book/dushi/> -> 重生之财色天下</book/dushi/1844/>
-
-
- 重生之财色天下 最新章节更新列表
-
-
-
- 重生之财色天下作者:天下第一白
-
-
- 第1章 :梦回2000</dushi/20150506/1237296.html> 第2章 :三大门户网站都不赚钱</dushi/20150506/1237297.html> 第3章 :那些年,我们追过的女孩</dushi/20150506/1237298.html> 第4章 :指点丁磊</dushi/20150506/1237299.html>
- 第5章 :五张模拟试卷</dushi/20150506/1237300.html> 第6章 :熊猫烧香</dushi/20150506/1237301.html> 第7章 :试探张宁</dushi/20150506/1237302.html> 第8章 :病毒发威</dushi/20150506/1237303.html>
复制代码
我的代码:- @echo off&setlocal enabledelayedexpansion
- (for /f "delims=^<^> tokens=1-8" %%a in (index.txt) do (
- set a=%%a
- set b=%%b
- set c=%%c
- set d=%%d
- set e=%%e
- set f=%%f
- set g=%%g
- set h=%%h
- set /a "1/!a:~-11,-5!" 2>nul && echo,%%a
- set /a "1/!b:~-11,-5!" 2>nul && echo,%%b
- set /a "1/!c:~-11,-5!" 2>nul && echo,%%c
- set /a "1/!d:~-11,-5!" 2>nul && echo,%%d
- set /a "1/!e:~-11,-5!" 2>nul && echo,%%e
- set /a "1/!f:~-11,-5!" 2>nul && echo,%%f
- set /a "1/!g:~-11,-5!" 2>nul && echo,%%g
- set /a "1/!h:~-11,-5!" 2>nul && echo,%%h
-
- ))1.txt
复制代码
代码不足之处:不简练,会产生空行。请指教!!!
作者: WHY 时间: 2016-2-17 23:08
- @echo off
- for /f "tokens=2,4,6,8 delims=<>" %%i in ('findstr /i "[0-9]\.html" index.txt') do (
- echo;%%i
- echo;%%j
- echo;%%k
- echo;%%l
- )
- pause
复制代码
作者: ivor 时间: 2016-2-17 23:34
本帖最后由 ivor 于 2016-2-18 00:16 编辑
回复 1# zjw767676
python比cmd控制台兼容性好,代码也少,越复杂会越明显。- # python 3.5.1
- # coding:utf-8
-
- import re
-
- try:
- with open(r"d:\desk\bat\test.html", "r") as file:
- for lines in file.readlines():
- data = re.findall(r"<(.+?)>",lines)
- for i in data:
- print(i)
- except:
- print("出现问题了,去www.bathome.net反馈")
- input("回车退出...")
- input("回车退出...")
复制代码
作者: 依山居 时间: 2016-2-18 00:39
本帖最后由 依山居 于 2016-2-18 00:44 编辑
正则表达式复制代码
这样可能更严谨点复制代码
作者: 依山居 时间: 2016-2-18 08:53
- """
- 2016年2月18日 08:20:03 codegay
- """
- import re
- url=re.findall(r"<(/dushi/\d+/\d+.html)>",open("提取指定文本.py",encoding="utf-8").read())
- [print(r,file=open("result.txt","a+")) for r in url]
-
-
- """
-
- * 其他类型</book/qita/>
- * 全本小说</change/quanben/>
- *
-
- 加入书签 | 推荐本书 | 返回书页</book/dushi/1844/> | 我的书架 | 手机阅读<http://m.7ddw.com/chapter/dushi/1844/>
-
- 顶点小说<http://www.7ddw.com> -> 都市言情</book/dushi/> -> 重生之财色天下</book/dushi/1844/>
-
-
- 重生之财色天下 最新章节更新列表
-
-
-
- 重生之财色天下作者:天下第一白
-
-
- 第1章 :梦回2000</dushi/20150506/1237296.html> 第2章 :三大门户网站都不赚钱</dushi/20150506/1237297.html> 第3章 :那些年,我们追过的女孩</dushi/20150506/1237298.html> 第4章 :指点丁磊</dushi/20150506/1237299.html>
- 第5章 :五张模拟试卷</dushi/20150506/1237300.html> 第6章 :熊猫烧香</dushi/20150506/1237301.html> 第7章 :试探张宁</dushi/20150506/1237302.html> 第8章 :病毒发威</dushi/20150506/1237303.html>
- """
复制代码
作者: WHY 时间: 2016-2-18 11:51
按照顶楼代码的意思,楼主应该是想匹配 .html 前面的7位数字
另外,如果不确定文本编码类型,可以考虑用 PowerShell- $ar = type index.txt | %{
- [regex]::Matches($_, '<(/.+?/\d{7}\.html)>', 'IgnoreCase') | %{$_.Groups[1].Value}
- }
- Out-File 1.txt -Input $ar -Encoding utf8
复制代码
作者: zjw767676 时间: 2016-2-18 18:17
回复 2# WHY
这就是我想要的,下载小说用的提取各章节的地址!
"<>"不需转义也可用!!!!!受教了!
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |