Board logo

标题: [文本处理] 【已解决】批处理如何提取网页中的关键字和代码? [打印本页]

作者: pan528    时间: 2013-5-28 11:38     标题: 【已解决】批处理如何提取网页中的关键字和代码?

  1. <a href="#1000000">第一篇 刑法</a><br><br>
  2.  <a href="#1100000">一、总则</a><br>
  3.   <a href="#1101000">(一)总类</a><br>
  4.    <a href="#1101010">1、刑法与修正案</a><br>
  5.    <a href="#1101020">2、与刑法相关法</a><br>
  6.    <a href="#1101030">3、立法解释及相关</a><br>
  7.    <a href="#1101040">4、罪名相关</a><br>
  8.    <a href="#1101050">5、刑法溯及力</a><br>
  9.   <a href="#1102000">(二)犯罪</a><br>
  10.    <a href="#1102010">1、犯罪和刑事责任</a><br>
  11.     <a href="#1102011">1)未成年人犯罪</a><br>
  12.     <a href="#1102012">2)国家工作人员犯罪</a><br>
  13.     <a href="#1102013">3)其他特殊主体犯罪</a><br>
  14.     <a href="#1102014">4)其他</a><br>
  15.    <a href="#1102020">2、犯罪的预备、未遂和中止</a><br>
  16.    <a href="#1102030">3、共同犯罪</a><br>
  17.    <a href="#1102040">4、单位犯罪</a><br>
复制代码
希望生成的文本:
  1. 1000000_第一篇 刑法
  2. 1100000_一、总则
  3. 1101000_(一)总类
  4. 1101010_1、刑法与修正案
  5. 1101020_2、与刑法相关法
  6. 1101030_3、立法解释及相关
  7. 1101040_4、罪名相关
  8. 1101050_5、刑法溯及力
  9. 1102000_(二)犯罪
  10. 1102010_1、犯罪和刑事责任
  11. 1102011_1)未成年人犯罪
  12. 1102012_2)国家工作人员犯罪
  13. 1102013_3)其他特殊主体犯罪
  14. 1102014_4)其他
  15. 1102020_2、犯罪的预备、未遂和中止
  16. 1102030_3、共同犯罪
  17. 1102040_4、单位犯罪
复制代码
我的代码:
  1. @echo off
  2. set file=%~snx1
  3. setlocal enabledelayedexpansion
  4. (for /f "delims=" %%i in (%file%) do (
  5. set t=%%i
  6. set t=!t:^<a href^=^"^#=!
  7. set t=!t: =!
  8. set t=!t:^"^>=_!
  9. set t=!t:^</a^>^<br^>=!
  10. set t=!t:^<br^>=!
  11. echo !t!
  12. ))>N%file%
  13. endlocal
复制代码
但运行后出错了!其情形如下:
  1. "#=="#1000000_第一篇 刑法
  2. "#=="#1100000_一、总则
  3. "#=="#1101000_(一)总类
  4. "#=="#1101010_1、刑法与修正案
  5. "#=="#1101020_2、与刑法相关法
  6. "#=="#1101030_3、立法解释及相关
  7. "#=="#1101040_4、罪名相关
  8. "#=="#1101050_5、刑法溯及力
  9. "#=="#1102000_(二)犯罪
  10. "#=="#1102010_1、犯罪和刑事责任
  11. "#=="#1102011_1)未成年人犯罪
  12. "#=="#1102012_2)国家工作人员犯罪
  13. "#=="#1102013_3)其他特殊主体犯罪
  14. "#=="#1102014_4)其他
  15. "#=="#1102020_2、犯罪的预备、未遂和中止
  16. "#=="#1102030_3、共同犯罪
  17. "#=="#1102040_4、单位犯罪
复制代码
问题:
1、"#=这三种特殊符号如何用转义符号?
2、不用替换法,如何提取网页中的关键字和代码?
3、DOS如何定位查找的字符?
问题有点多,希望高手们能指点指点,谢谢!
作者: tmplinshi    时间: 2013-5-28 12:10

  1. sed -n -r "s/^\s*<a href=\x22#([^\x22]+)\x22>([^<]+)<.*$/\1_\2/p" a.txt
复制代码

作者: terse    时间: 2013-5-28 12:17

  1. for /f "tokens=2-3 delims=<=> " %%a in (%file%) do (
  2.     for /f "tokens=* delims=#" %%i in ("%%~a_%%b") do @echo %%i
  3. )
复制代码

作者: pan528    时间: 2013-5-28 12:26

本帖最后由 pan528 于 2013-5-28 12:39 编辑

回复 3# terse

高手!学习了!没有想到delims不需转义。谢谢!

但,我没有看懂“delims=<=> ”,为什么最后放上一个全角的空格?

能否指教?
作者: terse    时间: 2013-5-28 12:49

回复 4# pan528
行首字符啊
作者: pan528    时间: 2013-5-30 14:42

遗憾啦,没有人回答另二个问题:
1、"#=这三种特殊符号如何用转义符号?
3、DOS如何定位查找的字符?
作者: pan528    时间: 2013-7-19 18:53

上述两个问题好久没有人回,只好另设题目探讨了。不过本题可以结了,再次谢谢回贴的热心高手!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2