Answers:
搜索运算符:
?
-任何字符。(正则表达式当量:.
)
例如:
d?g
认定dig
,dog
和dug
[-]
-范围内的角色。(正则表达式等效:相同)
例如:
[a-m]end
认定bend
,fend
,lend
,和mend
(在这种情况下,第一个字符是a
,m
,或之间的任何字母)
<
-词的开始。(正则表达式当量:^
)
例如:
<tele
认定telemarketing
,telephone
和television
>
-词的结尾。(正则表达式当量:$
)
例如:
tion>
认定aggravation
,inspiration
和institution
()
-表达。(正则表达式当量:(?:)
)
示例:使您可以“嵌套”搜索词中的搜索表达式。例如,
<(pre)*(ed)>
查找presorted
和prevented
[!]
不是 (正则表达式当量:[^]
)
示例:查找文本,但排除方括号内的字符;
t[!ae]ll
发现till
,toll
但不是,tall
并且tell
{n}
-发生的次数。(正则表达式等效:相同)
示例:查找紧接在
{
; 之前指定次数的字母。to{2}
发现too
和tool
但不to
{n,}
-发生的次数。(正则表达式等效:相同)
示例:
,
在数字之后添加a 告知Word查找至少该数目的事件;a连续{4,}
找到四个或更多字母a
{n,n}
-发生的次数。(正则表达式等效:相同)
例如:
10{2,3}
认定100
和1000
,但不10
@
-前1个或更多。(正则表达式当量:+
)
示例:查找紧接在
@
; 之前的一个或多个字符。^p@^t
查找一个或多个段落分隔符,后跟一个制表符
*
-0个或更多字符。(正则表达式当量:.*
)
示例:查找具有一个或多个指定字符的单词,或不包含任何字符的单词;
des*t
认定descent
,desert
,dessert
,和destruct
[]
-指定的字符之一。(正则表达式等效:相同)
例如:
b[aeiou]t
认定bat
,bet
,bit
,和but
[!a-z]
-任何单个字符,括号内的字符除外。(正则表达式当量:[^a-z]
)
示例:
m[!o-z]st
查找mast
,mist
但不是most
或must
这看起来像是用于正则表达式的非标准符号,通常缩写为regex或regexp。如果您进行了认真的文本处理,这是一个非常重要的工具。如您所知,正则表达式允许强大的模式匹配和替换。您提供的符号与标准非常相似,因此我可以识别它。有一个行业标准POSIX和一个事实上的标准Perl regex。下一段是无聊的历史记录,如果需要,请跳过它。
POSIX regex用于兼容POSIX的操作系统的许多面向用户的工具中(请考虑Linux及其相近的亲戚)。典型的示例是grep
,它使您可以搜索文件中的文本。要匹配的文本在正则表达式中指定。Perl是一种编程语言,采用了这一概念并对其进行了很大的扩展。后来,此功能的一个子集可以用作代码库PCRE。各种各样的软件都嵌入了该库,最著名的是文本编辑器。
我可以看到与上面表示法中的习惯有所不同。Word的逃逸序列符号^
通常是\
。经常使用“仅数字”,因此在Perl中有一个缩写,即\d
等同于字符类[0-9]
;同样,\w
表示单词字符,等效于[0-9a-zA-Z_]
。Word的符号对此很麻烦。我不知道Word的其他局限性,因此建议您切换到具有PCRE支持的文本编辑器。
您应该首先了解空白匹配(缩写\s
)和重复(+
和*
)。Perl的正则表达式在perlrequick,perlretut和perlre中进行了解释。要立即开始实验,请使用基于Flash的RegExr。
通配符就像Scrabble中的空白部分,或者像您可以在某些纸牌游戏中用来代表任何纸牌的小丑一样。您可能已经熟悉“ ”和“?” 文件匹配中的通配符:在“文件+打开”对话框中,可以通过键入“ .doc” 来显示所有扩展名为“ .doc”的文件,也可以显示所有文件“ 01062001.doc”,“ 01072001.doc”,“ 01122001.doc” ”,输入“ 01 ?? 2001.doc”。
但是Word中的通配符功能远远超出了此范围,并且功能非常强大。
首先,您必须首先在“查找/替换”对话框中打开“通配符”。为此,请打开“查找”对话框,单击“更多”,然后选中“使用通配符”。在宏中,设置.Find.MatchWildcards = True。如果您不这样做,Word会将通配符视为普通文本。
稍后我们将看到,您可以定义范围[],groups(),重复@,{},锚点<>和异常!。使用这些正则表达式,您可以搜索文本中具有某些共同点的模式(某些模式:例如,它们仅包含某些字符或一定数量的字符)。
注意:Word使用“惰性”模式匹配:这意味着它将尽快退出匹配。大多数Unix工具使用“贪婪”模式匹配(该算法尝试匹配尽可能多的文本),因此,如果您使用过这种工具,请当心!
使用通配符搜索的秘密是使用“模式”来识别您希望查找的文本字符串,而忽略其他所有内容。通配符用于表示该字符串中的字符或字符序列。
由于字符的不同组合可以用各种通配符组合表示,因此通常存在不止一种识别文档中特定文本字符串的方法。因此,如何选择代表那组字符通常是个人喜好的问题。文档中文本的上下文将在很大程度上决定在特定情况下使用的最合适的组合。
以下是在通配符搜索中具有特殊含义的字符列表([] {} <>()-@?!* \)。
注意:通配符搜索区分大小写。
Word的帮助文件中的通配符列表几乎找不到是没有帮助的!本文中列出并描述了通配符,但如果需要在帮助中查找通配符,则将其称为:“为要查找的项目键入通配符”。但是您不能直接看那篇文章。您必须首先找到主题:“使用通配符微调搜索”,其中包含指向该主题的链接!
提示:使用通配符搜索时:仔细思考时不要皱眉或咬舌头-您必须保持正则表达式。:-|
Word的通配符是正则表达式,在Bash shell的扩展glob和Perl的PCRE正则表达式之间具有表达能力。
微软有两个介绍的文章,添加动力Word搜索使用正则表达式,并把正则表达式来使用Word,解释一些主要的概念。
cf. 我也问了一个问题,对MS Word进行PCRE式正则表达式搜索/替换最简单的方法是什么?
我认为在搜索和替换Word文档中的文本时,Word通配符非常有限。普通正则表达式更加可靠,并且有大量的Web资源和论坛可帮助创建正则表达式和学习语法。
最近,我开发了一种特殊的工具,该工具允许使用.NET正则表达式搜索和替换Word文档中的文本。该工具称为“多重查找和替换”工具,它是Microsoft Word TransTools +插件的一部分:http : //www.translatortools.net/transtoolsplus-multiplereplace.html
例如,如果您需要将[b] text [/ b]替换为粗体格式的“文本”,则需要使用以下参数。
1)打开多个查找和替换工具
2)添加一个新的搜索并将表达式替换为以下参数。
模式:正则表达式
查找内容:[[bB]](。+?)[/ [bB]]
替换为:$ 1
替换时应用特定格式:粗体-是
添加搜索和替换表达式后的“多个查找和替换”窗格的屏幕快照:http : //prntscr.com/nj0286
3)单击“全部替换”以立即执行替换,或单击“全部查找”以查找所有出现的情况,以便确定需要替换的内容。
更换前的文字:http : //prntscr.com/nj02jc
替换后的文本:http : //prntscr.com/nj02qh
您可以在此处找到该工具用法的一些示例及其功能说明:http : //www.translatortools.net/news/transtoolsplus-v1-1.html
斯坦尼斯拉夫