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

【完结】50元求文字提取

  [复制链接]
发表于 2023-4-27 18:31:04 | 显示全部楼层 |阅读模式
本帖最后由 lxh623 于 2023-4-28 06:56 编辑

当前文件夹有许多子文件夹,其下都有子文件夹OEBPS,OEBPS下又有子文件夹juans。子文件夹juans含有一个或者多个xhtml文件。
在子文件夹juans的每一个xhtml文件中,用正则表达式提取<span class\="text\_2"><span class\="corr">(.{1,2})<\/span>,把提取的文本\1写入在子文件夹juans中新建的Cbeta.txt,编码是UTF-8,一行一个。
谢谢!
发表于 2023-4-27 19:11:32 | 显示全部楼层
<span class='corr'><span class="text_1">準提心要</span></span>
???
你确定你的要求是对的?
 楼主| 发表于 2023-4-27 20:09:32 | 显示全部楼层
準提心要
???
你确定你的要求是对的?
jyswjjgdwtdtj 发表于 2023-4-27 19:11

好像你下载了文件。
txt_1和txt_2,你没有分清吧。
当然,也许说的不完全清楚。
就是一行得到一个字。
谢谢!
发表于 2023-4-27 20:15:52 | 显示全部楼层
额 其实正则提取是蛮简单的 就是你这些奇怪的字符都是属于什么编码?我要知道正确的编码才能读到正确的内容
发表于 2023-4-27 20:36:41 | 显示全部楼层
  1. <# :
  2. cls&echo off&cd /d "%~dp0"&mode con lines=5000
  3. path %SYSTEMROOT%\System32\WindowsPowerShell\v1.0;%path%
  4. set "current=%cd%"
  5. powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
  6. pause
  7. exit
  8. #>
  9. $current=($env:current).trimend('\');
  10. $enc=New-Object System.Text.UTF8Encoding $False;
  11. $folders=@(dir -literal $current -recurse|?{$_ -is [System.IO.DirectoryInfo]});
  12. for($i=0;$i -lt $folders.length;$i++){
  13.     if($folders[$i].Name -eq 'juans'){
  14.         write-host $folders[$i].FullName -ForegroundColor yellow;
  15.         $arr=New-Object -TypeName System.Collections.ArrayList;
  16.         $files=@(dir -literal $folders[$i].FullName|?{('.xhtml' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
  17.         for($j=0;$j -lt $files.length;$j++){
  18.             write-host $files[$j].Name;
  19.             $text=[IO.File]::ReadAllText($files[$j].FullName, $enc);
  20.             $m=[regex]::matches($text, '<span class="text_2"><span class="corr">(.+?)</span>');
  21.             foreach($it in $m){
  22.                 [void]$arr.add($it.groups[1].value);
  23.             }
  24.         }
  25.         $newfile=$folders[$i].FullName+'\Cbeta.txt';
  26.         [IO.File]::WriteAllLines($newfile, $arr, $enc);
  27.     }
  28. }
复制代码

评分

参与人数 1技术 +1 收起 理由
lxh623 + 1 乐于助人

查看全部评分

 楼主| 发表于 2023-4-28 06:56:12 | 显示全部楼层
回复 5# zaqmlp
请查收。
谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 04:26 , Processed in 0.019266 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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