在Word里使用部分正则表达式
作为一套昂贵的字处理软件,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+? |
无 |
|
单词起始 |
\< |
\< |
无 |
< |
|
单词结尾 |
\> |
\> |
无 |
> |
|
单词边界(起始或结尾) |
\b |
\b |
\b |
无 |
|
非单词边界 |
\B |
\B |
\B |
无 |
|
任意字符串 |
.* |
.* |
.* |
* |
|
行首 |
^ |
^ |
^ |
无 |
|
行末 |
$ |
$ |
$ |
无 |
|
换行符 |
\n |
C-q C-j |
\n |
^13 |
|
”或“ |
re\|re |
re\|re |
re|re |
无 |
|
引用上次找到的内容 |
不知道 |
\& |
不知道 |
^& |
|
引用被括号捕获的内容 |
\digit |
\digit |
\digit |
\digit |
|
含义 |
GNU grep |
GNU Emacs |
Perl |
MS Word |
注:
re 代表一个正则表达式 (RegExp)
MS Word里多次匹配,最少是一次,没有0次。
\digit 指 \后面加数字 如 \1 \2
正则表达式里括号子表达式可以嵌套使用,Word里好像不行
10万+

被折叠的 条评论
为什么被折叠?



