Board logo

标题: [文本处理] 【已解决】批处理如何删除文本所有格式,只保留汉字? [打印本页]

作者: 屡败屡战    时间: 2018-7-28 16:19     标题: 【已解决】批处理如何删除文本所有格式,只保留汉字?

本帖最后由 屡败屡战 于 2018-7-29 20:07 编辑

本人要处理大量的文档,要求将文档内容里的所有格式、换行符、回车符、空格、标点符号、数字、英文字母等等,一切全部删除,只保留汉字即可。不知能否实现??
作者: cfwyy77_bat    时间: 2018-7-28 22:30

可以试试用正则表达式,直接匹配出汉字。可以选择支持\p 正则的 语言或工具。 Perl,PHP, Ruby等  应该支持。python不支持。
我用了grep
  1. grep -Po '\p{Han}+' 1.txt >2.txt
复制代码

作者: 屡败屡战    时间: 2018-7-28 23:07

好像正是我想要的,问下,如何处理大量文本呢?
作者: codegay    时间: 2018-7-28 23:50

回复 2# cfwyy77_bat

更强大的python正则表达式模块 -- regex

    https://www.cnblogs.com/gayhub/p/6354097.html
作者: 屡败屡战    时间: 2018-7-29 00:16

我电脑没安装python3,我下载试试,以前没用过这个。
作者: cfwyy77_bat    时间: 2018-7-29 09:00

回复 4# codegay
对对,谢谢大佬提醒,我应该说python的标准正则库re 不支持。
作者: cfwyy77_bat    时间: 2018-7-29 09:02

回复 3# 屡败屡战
先搞定单个文本,多个你再自由发挥好了
作者: codegay    时间: 2018-7-29 11:06

回复 6# cfwyy77_bat


    好多工具的正则不支持{han}这样的表达式,比如notepad++,notepad2-mod,还有python,但是支持\u来匹配unicode的范围。
所以可以用\u来匹配中文的unicode范围。
作者: codegay    时间: 2018-7-29 11:22

正则用\w把字符滤出来,然后再滤掉数字和字母。就可以得到楼主想要的结果了。
作者: WHY    时间: 2018-7-29 12:21

  1. PowerShell -c "dir *.txt | ForEach{$str=(type $_) -join '' -replace '[^\u3400-\u9FFF]+'; sc ($_.Name+'.Log') -value $str}"
复制代码
  1. @if(0)==(0) echo off
  2. dir /b *.txt | cscript //nologo //e:jscript "%~f0"
  3. pause & goto :EOF
  4. @end
  5. var fso = new ActiveXObject('Scripting.FileSystemObject');
  6. while(!WSH.StdIn.AtEndOfStream){
  7.     var strFile = WSH.StdIn.ReadLine();
  8.     var str = fso.OpenTextFile(strFile, 1).ReadAll().replace(/[^\u3400-\u9FFF]+/g, '');
  9.     fso.OpenTextFile(strFile + '.Log', 2, 1).Write(str);
  10. }
复制代码
参考:中日韩统一表意文字字符集范围
作者: Batcher    时间: 2018-7-29 13:00

回复 3# 屡败屡战


    可以用 for + grep 处理大量文件
作者: codegay    时间: 2018-7-29 20:39

WHY用的范围可太大了。
https://www.cnblogs.com/chenwenb ... /08/17/2142718.html
我搜索到多是用0x4E00~0x9FA5
一部分是9FBF
作者: WHY    时间: 2018-7-29 23:20

回复 12# codegay


    是的,\u3400-\u4DBF 属于扩展A区,一般用不到,加不加基本没有区别。

CJK Unified Ideographs 在 .NET 正则中的区间是 \u4E00-\u9FFF,也就是 \p{IsCJKUnifiedIdeographs}
参考:https://docs.microsoft.com/zh-cn ... regular-expressions




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