文字效果自动纠正如何自定义库(三)通配符WildCards




阅读本系列所有文章点我

请先阅读本系列(一)http://blog.wtsolutions.cn/archives/360

请先阅读本系列(二)http://blog.wtsolutions.cn/archives/365

本系列(三),也就是本博客文章,主要介绍文字效果自动纠正的自定义库中的通配符功能,也就是matchWildCards功能。

通配符是word在实现查找和替换过程中用到的一种较为高级的功能。

首先举几个通配符的例子(来源):

若要查找 使用此 例如
任何单字符 ? s?t”可以找到“sat”和“set”。
任何字符串 * s*d”可以找到“sad”和“started”。
指定字符之一 [ ] w[io]n”可以找到“win”和“won”。
此范围内的任一字符 [-] [r-t]ight”可以找到“right”、“sight”和“tight”。

范围必须是升序。

除了括号内的字符之外的任一字符 [!] m[!a]st”可以找到“mist”和“most”,但不能找到“mast”。
除了括号内范围中的字符之外的任一字符 [!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, n} 10{1,3}”可以找到“10”、“100”和“1000”。
某个字符或表达式的一个或多个匹配项 @ [email protected]”可以找到“lot”和“loot”。
单词开头 < <(inter)”可以找到“interesting”和“intercept”,但不能找到“splintered”。
单词结尾 > (in)>”可以找到“in”和“within”,但不能找到“interesting”。

下面我将以举例子的形式讲解如何在文字效果自动纠正的自定义库中使用通配符。

例子1:

纠正前:m2    或者  m3

纠正后:m2  m3

  1. 首先打开自定义工具 http://s.wtsolutions.cn/tea-define-db.html
  2. 在s1中输入  m[23]
  3. 在s1Opt中选择matchWildCards/使用通配符
  4. 在s2中输入[23]
  5. 在s2Opt中选择matchWildCards/使用通配符
  6. 在to中输入 $superscript

s1Opt和s2Opt中都选择了 matchWildCards/使用通配符,那么意味着我们可以在s1和s2中使用通配符定义需要查找的文字。

在通配符中 [] 表示任意 [] 中的字符,此例中的s1  : m[23],表示Word会在第一步去查找 m2 或者 m3,此例中的s2: [23] 表示会在第一步的查询结果内进行第二步查找[23] 也就是2 或者3,如果找到,则会被替换成to的$subscript也就是上标。

例子2:

纠正前:[2]    或者  [18]

纠正后:[2]  [18]

  1. 首先打开自定义工具 http://s.wtsolutions.cn/tea-define-db.html
  2. 在s1中输入 \[[1-9]{1,2}\]
  3. 在s1Opt中选择matchWildCards/使用通配符
  4. 在to中输入 $superscript

s1Opt中都选择了 matchWildCards/使用通配符,那么意味着我们可以在s1中使用通配符定义需要查找的文字。

在通配符中 [] 表示任意 [] 中的字符,通配符中{n,n}表示n~n的数量

现在我们来拆解一下 s1    \[[1-9]{1,2}\]

s1开头和结尾的\[ 和 \] 分别表示字符[  和 ] ,为什么需要在前面加上\呢,是因为当matchWildCards/使用通配符被勾选时,如果不加\ ,那么 [] 会被认为是通配符,而不是文字。从例1中可以看出,[23]表示2或者3,但如果是\[23\]那么就是去查找[23]这个字符串了,而不是2或者3了。

位于s1中间靠左的[1-9]表示1-9中的任何一个数字,也就是 1、2、3、4、5、6、7、8、9

位于s1中间靠右的{1,2}表示左侧的通配符有1-2个,{1,2}的左侧通配符是[1-9],也就是意味着[1-9]有1位或者2位,也就是可以是 12,22,31,48,2,7,17,8,19……

此例中的s1  :\[[1-9]{1,2}\],表示Word会在第一步去查找被[]包裹的 1位或2位的1-9之间的数字,如果找到,则会被替换成to的$subscript也就是上标。

阅读本系列所有文章点我

 

 

 

© 2017, WTSolutions Blog. All rights reserved. 本文如未特别注明,均为原创文章,如需转载请注明出处。

打开微信扫一扫或识别二维码关注WTSolutions微信公众号

发表评论

电子邮件地址不会被公开。 必填项已用*标注