作为一套昂贵的字处理软件,Word里竟然不可用正则表达式,实在令人发指。不过他的查找替换里可以使用通配符(Wildcards),可以实现一部分的正则表达式功能。
例如:把所有email地址改写 mailto:xxx@gmail.com 的形式,可以用以下操作:
Ctrl-H
more
Use wildcards
Find what: ([a-zA-Z0-9.+_-]@\@[a-zA-Z0-9]@.[a-z]@)
Replace with: mailto:\1
然后替换就可以了。
一些常用的正则表达式(已含所有的 MS Word 可用的通配符)
| 含义 | GNU grep | GNU Emacs | Perl | MS Word |
|---|---|---|---|---|
| 任何单个字符 | . | . | . | ? |
| 符合其中的任一字符 | [...] | [...] | [...] | [...] |
| 符合除此之外的任一字符 | [^...] | [^...] | [^...] | [!...] |
| 子表达式 | \(re\) | \(re\) | ( re) | (re) |
| 表达式重复多次 | re\{...\} | re\{...\} | re{...} | re{...} |
| 表达式出现0或1次 | re\? | re? | re? | 无 |
| 表达式出现0或多次 | re* | re* | re* | 无 |
| 表达式出现1或多次 | re\+ | re + | re+ | re@ |
| 表达式出现0或1次(lazy mode) | 无 | re?? | re?? | 无 |
| 表达式出现0或多次(lazy mode) | 无 | re*? | re*? | 无 |
| 表达式出现1或多次(lazy mode) | 无 | re +? | re+? | 无 |
| 单词起始 | \ < | \< | 无 | < |
| 单词结尾< /td> | \> | \> | 无 | > |
| 单词边界(起始或结尾) | \b | \b | \b | 无 |
| 非单词边界 | \B | \B | \B | 无 |
| 任意字符串 | .* | .* | .* | * |
| 行首 | ^ | ^ | ^ | 无 |
| 行末 | $ | $ | $ | 无 |
| 换行符 | \n | C-q C-j | \n | ^13 |
| ”或“ | re\|re | re\ |re | re|re | 无 |
| 引用上次找到的内容 | 不知道 | \& | 不知道 | ^& |
| 引用被括号捕获的内容 | \digit | \digit | \digit | \digit |
** 注:re 代表一个正则表达式 (RegExp)
*** MS Word里多次匹配,最少是一次,没有0次。
*** \digit 指 \后面加数字 如 \1 \2
*** 正则表达式里括号子表达式可以嵌套使用,Word里好像不行


No comments:
Post a Comment