朋友小A在整理一份材料时,经常会用扫描仪将已有的纸质材料转换成电子文档,但是,用OCR软件识别出来的文字,总把“引”字识别成“弓1”或“弓i”、“弓l”。他使用WPS文字中的替换功能,选使用通配符,用“引”替换“弓*”,结果是只替换了“弓”字,而后面的那个字母没有被替换掉,因此向本“砖家”求教。
哈哈,找到本“砖家”就算找对人了。本“砖家”不客气地告诉他:用查找替换功能来实现,方向是对了,但替换的技巧还没有掌握。
在小A的方法中,“查找”的对象是“弓*”,会让WPS很为难,因为“*”作为通配符,一般是要放在查找内容的中间,也就是前后都要有内容。否则,因为“*”表示“有任意多个任意字符”,后面又没有特定字符来限制,会导致系统不知你到底要找什么,结果就只查找到了“弓”(任意多也当然包括“0”个呀),当然替换掉的也只是“弓”字,后面紧跟着的“i”、“l”、“1”等字符并不会被一直替换掉。
那么,应该怎么做呢?除了“*”外,还有一个通配符“?”(半角问号),与“*”不同的是,一个“?”只代表一个字符,如果将查找内容设置为“弓?”,就能查找到“弓1”或“弓i”、“弓l”了。但是,这样还会导致另外一个问题,就是虽然OCR识别错误的“弓1”或“弓i”、“弓l”都被替换成“引”了,但是原本正确的“弓箭”和“惊弓之鸟”中的“弓之”等也被替换成了“引”,这可不行!
看着小A那惊讶加佩服的眼神,我的虚荣心得到了极大的满足,没什么说的,把我的看家本领拿出一两件来教他吧。
在“查找内容”中输入“弓[1il]”,在“替换为”中输入“引”,点一下“全部替换”,好了,“弓1”或“弓i”、“弓l”全部替换成“引”了,而“惊弓之鸟”却并没有变成“惊引鸟”!
在这里,方括号的作用是“只要与其中任意一个字符匹配”,就会被查找到,这样,既找到了所有要找的内容,又有效避免了“错杀一万”的问题。