当我想搜索两个单词时,有没有办法终止搜索中的通配符?
假设我有以下单词
awesome mouse
awful albatros
awesome albatros
awful mouse
现在我正试图找到
aw* alba*
所以我预期的比赛将是awful albatros
两个awesome albatros
独立的结果
(显然,在示例中,
?
通配符更合适,但我尝试使用通配符进行外语搜索,其中单词的结尾可能因名词而异)。因此,请坚持使用*
通配符
我尝试了各种各样的方法,包括开始单词搜索和嵌套表达式,但我总是得到错误匹配,因为通配符*
随后一直将所有内容解释为匹配项并且不会终止单词。
这是我能最接近理解的——
<(aw)*{1,}\ (alba)*
问题是,第一个*
接受它之后的所有内容并将其吃掉,而我实际上想在第一个空格后终止它,然后开始搜索第二个单词(alba*
)
我该如何做呢?
答案1
不要*
使用组,例如:
<aw[a-z]{1,} alba[a-z]{1,}>
- 如果您的语言包含特殊字符,您可能需要在组中包含这些字符
- 空格不是特殊字符,不需要转义
- 不需要在字符串周围使用括号,您可能希望将整个表达式包含在一组括号中(例如,如果您想替换它)
- < 和 > 分别匹配单词的开头和结尾。
进一步阅读:https://wordmvp.com/FAQs/General/UsingWildcards.htm#adv
答案2
由于您没有提到这些单词是出现在同一行还是出现在新的段落中,因此我在这里假设两种情况。
如果它们出现在同一行:
(单词出现在同一行,并以空格隔开)
为了找到特定的单词模式,请按Ctrl+F进入“查找”菜单。在“找什么:”输入[space](aw)*{1,}\ (alba)*
(其中 [space] 指的是空格键的一个笔画)并选中“使用通配符”。
点击找下一个。您将在文档中选择该特定图案:
(请注意,此搜索还将选择两个单词前面的空格,如上所示。因此,如果您想用其他文本替换上述文本并保持相同的格式,请不要忘记在替换词的开头前添加一个空格;例如Replace with
:)[space]SomeReplacementText
如果它们出现在不同的段落或回车符之后(如图所示):
在这种情况下,输入Find what:
以下内容:^13(aw)*{1,}\ (alba)*
并点击“查找下一个”。这将为您获取所需的结果:
(但请记住,上述搜索关键字选择了前面的回车符,如上所示。因此,如果您想用其他文本替换上述文本,同时保持格式不变,请不要忘记在^13
替换词的开头之前添加回车符();Replace with
例如^13SomeReplacementText
:)
如果两种格式中都有这些单词(即在同一行以及新段落中),则必须逐一执行这两个步骤。
希望这能帮到你。告诉我效果如何 :)