求助 如何快速批量找出txt文件中的所有4字词(可以用正则表达式)

各位前辈,小人菜鸟,要处理几万词,我现在要一个一个的手动处理,累的我sb呵呵的。请大家帮帮忙。支小弟一招。内容如下我有一个txt文本文件,里面有几万个汉语词。词和词之间都... 各位前辈,小人菜鸟,要处理几万词,我现在要一个一个的手动处理,累的我sb呵呵的。请大家帮帮忙。支小弟一招。内容如下
我有一个txt文本文件,里面有几万个汉语词。词和词之间都用空格隔开。
我想用一个办法 把里面的4个字的词一次都找出来。并输出一个新的txt文件。
但要求4字词原来在第一行,输出后还要在第几行,没有4字词的行就空行代替
最好能用这样的正则表达式
\\w+@(\\w+\\.)+[a-z]{2,3} 抽取邮箱
^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$ 抽取身份证号

例如
国民 黎民百姓 人民 全民 布衣
众生 民众 群众 千夫 万众 公众
老少 老老少少 老小 白叟 黄童 大大小小

输出
黎明百姓
(空行)
老老少少 大大小小

找完4字词后,有没有一个办法能再找出所有非四字词
展开
 我来答
百度网友38d9821aa
2011-12-19 · TA获得超过174个赞
知道答主
回答量:267
采纳率:0%
帮助的人:231万
展开全部
这个用正则提取并不难。我这里用的软件是EmEditor
先用正则表达式查找:^
替换成:★(这个随便,△,○都行)
提取串:^(.{5})( )|★|( )(.{4})( )|( )(.{4})$
提取出来的是4个字的,然后把★替换掉就行了。
2个字的,可参照上面的。
追问
老师你好
现在只是标绿了 我不会提取 能指教一下吗?
还有 这个连3字词和两字词也标注出来了。
己闻楣Sx
2011-12-20 · TA获得超过1936个赞
知道大有可为答主
回答量:1057
采纳率:93%
帮助的人:914万
展开全部
查找:((^| +)([\u4E00-\u9FA5]{5,}|[\u4E00-\u9FA5]{1,3})(?=$| +)|^((?!(?:^| +)[\u4E00-\u9FA5]{4}(?:$| +)).)+$)
替换为空

瑕疵:行首可能留有空格,欲求完美,可自行批量删除,应该会吧?
探讨:有个很关键的事儿就是“什么叫汉字”,看你的例子全是GBK集合(收编了21000多个)的,如果想包含中日韩超大字符集的汉字(目前已编码76000多个),则[\u4E00-\u9AF5]的写法需要扩充,有兴趣的话,可以找一找我回答过的相关问题。

另:“找出所有非四字词”是啥意思?是“删除所有四字词,只留下非四字词”吗?估计第一个问题解决了,应该能够启发你自己搞定,若不成,再追问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式