Word中使用正则表达式进行查找和替换

在实际开发中经常使用对WORD/EXCEL及其他数据格式的整理,其中之一便是使用WORD中的查找与替换功能整理数据。

对于最一般的查找与替换功能相信各位都熟悉了,但是借助于WORD所支持的正则表达式,我们可以实现更复杂和实用的数据格式更改。

我搜索了一些文章都提供了有关使用正则表达式的不同程度的例子,但是直接套用有许多不行。因此,我想在本文中好好整理一下,但是

时间原因,一下没法整理完,只好一部分一部分地来,将会整理到这一个文章中。

 

首先,来看一下WORD对于正则表达式的支持吧。




用于查找类型示例
任一字符?s?t 可找到“sat”和“set”。
任何字符串*s*d 可找到“sad”和“started”。
单词开头<<(inter) 可找到“interesting”和“intercept”,但找不到“splintered”。
单词结尾>(in)> 可找到“in”和“within”,但找不到“interesting”。
指定字符之一[ ]w[io]n 可找到“win”和“won”。
此范围内的任一字符[-][r-t]ight 可找到“right”和“sight”。范围必须是升序。
除了括号内范围中的字符之外的任一字符[!x-z]t[!a-m]ck 可找到“tock”和“tuck”,但找不到“tack”或“tick”。
前一个字符或表达式的 n 个匹配项{n}fe{2}d 可找到“feed”,但找不到“fed”。
前一个字符或表达式的至少 n 个匹配项{n,}fe{1,}d 可找到“fed”和“feed”。
前一个字符或表达式的 n 到 m 个匹配项{n,m}10{1,3} 可找到“10”、“100”和“1000”。
前一个字符或表达式的一个或多个匹配项@lo@t 可找到“lot”和“loot”。





例1:把近似有规律的许多连续的半角空格字符替换为制表符。

例如如下分布的一些英语单词:

English    英语/英语的

Chinese   汉语/汉语的

...

注意,上面单词后面都跟了2个或者2个以上的空格字符。

于是我们可以构造下面的查找表达式(左边大括号的左边是一个半角空格字符):

 {2,}

注意,还要选择使用通配符(必须的)。

替换表达式是: ^t

例2:......(待续)