有一查找替换的现象很特别,就是word在查找替换时,对中文的态度跟对英文的态度好像并不一样。 如http://club.excelhome.net/viewthread.php?tid=204993&replyID=742803&skin=0帖子,如果附件中表格的内容为中文(有少量英文好像也行),用如下代码可删除后面的空行: 查找:(*>)^13{1,} 替换:\1 且以单元格最后的回车符为根(即每个匹配项都少不了它)。但在全英文状态下,就查找不到匹配项了。导致这种处理差异的原因到底是查找代码(含通配符,如“<”或“>”)、半角空格、半角英文标点,还是真的态度不同?目前的测试还难以弄明。 又如本帖附件,想只删除表格单元格中首尾两个半角空格(中间的保留),用“^32(*>)^32”或“^32(<*>)^32”代码查找每个最大匹配项时,对于中文文本,问题不大。但对于英文文本,如果是一个单词,或者相邻两个单词不是仅以半角空格(没有标点)分隔,即使标点前后有多个空格,也可成功删除;如两个单词间仅以半角空格分隔,则该空格将被删除,且匹配字符是从单词前的连续空格(不分全角半角)开始的。从这点上看,空格在英文文本中有特殊意义。如果想保留这样的空格,用反向查找法也许可以,即先标出想保留的空格,再找出真正想删除的空格,但此法也许不是绝对安全的。在此情况下,不知到底有没有一步删除法。 到底查找替换的后台处理机制是怎样的?
ifR0MEPR.rar
(7.89 KB, 下载次数: 10)
|