[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样找到同一行的不对称词组。

本帖最后由 每天几分 于 2012-9-28 14:54 编辑

【示例】:

幅射→辐射了
爱乌及屋→爱屋及
安兵不动→按兵不动动

【正确对称】:

幅射→辐射
爱乌及屋→爱屋及乌
安兵不动→按兵不动

词组太多,逐个找起来就麻烦了。

谢谢batman!
1

评分人数

    • batman: 感谢给帖子标题标注[已解决]字样PB + 2

这个用批实现起来

相当相当蛋疼。。。
***共同提高***

TOP

回复 2# batman


    不能实现么。。先减去对称的,再导出应该很容易的啊。

思路应该是这样的吧:
  1. ^[\u4e00-\u9fa5]{2}→[\u4e00-\u9fa5]{2}$
  2. ^[\u4e00-\u9fa5]{3}→[\u4e00-\u9fa5]{3}$
  3. ^[\u4e00-\u9fa5]{4}→[\u4e00-\u9fa5]{4}$
  4. ^[\u4e00-\u9fa5]{5}→[\u4e00-\u9fa5]{5}$
  5. ^[\u4e00-\u9fa5]{6}→[\u4e00-\u9fa5]{6}$
复制代码

TOP

原来以为要拼音对称。。。
如此以来就容易了(适应于26个字符以内的词组比对)
  1. @echo off&setlocal enabledelayedexpansion
  2. set "code=abcdefghijklmnopqrstuvwxyz"
  3. (for /f "tokens=1,2 delims=→" %%a in (a.txt) do (
  4.   set "str=%%a%code%"&set "var=%%b%code%"
  5.   if "!str:~26!" neq "!var:~26!" echo %%a→%%b
  6. ))>list.txt
  7. start list.txt
复制代码
1

评分人数

***共同提高***

TOP

返回列表