如何在 Microsoft Word 文档中查找包含两个或更多“m”的每个单词,例如“mermaid”、“mommy”等?
我曾尝试使用通配符查找<[! ]@m*>
,这会找到所有包含至少一个“m”的单词,但我不知道如何找到包含两个“m”的单词。
答案1
我试图解决这个问题,但无法找到一个合理的答案。但由于没有其他人提供任何答案,我给你一个不合理的答案:
针对以下模式进行六次单独搜索:
<[Mm][! ]@m>
<[Mm][! ]@m[! ]@>
<[! ]@mm>
<[! ]@mm[! ]@>
<[! ]@m[! ]@m>
<[! ]@m[! ]@m[! ]@>
这些对应于以下单词模式:
- 米 某物 米
- 米 某物 米 某物
- 某物 米 米 1
- 某物 米 米 某物
- 某物 米 某物 米
- 某物 米 某物 米 某物
严格来说,您还应该搜索<[Mm]m>
和<[Mm]m[! ]@>
,但它们与单词“mm”以及以“mm”开头的单词匹配,而这些单词不存在(除非您包含首字母缩略词)。
请注意,前两个模式以 开头[Mm]
,这样即使单词是大写的,它们也能匹配(因为通配符搜索区分大小写)。如果您的单词可能全部大写,则应将m
模式中的所有 替换为[Mm]
。
另外,我按照您的示例使用[! ]
(空格以外的任何字符)作为“单词”字符。这确实是一个糟糕的选择;这意味着除空格之外的任何连续字符都可以算作一个单词。糟糕的示例包括“bumper-to-bumper”、“miles/minute”和“rum&molasses”。使用[A-Za-z]
(后面跟 )作为单词字符会更安全@
。
PS 我承认这不是一个很实用的答案。有一件事可能会让它变得可以忍受,那就是编写一个 VBA 例程来尝试所有六种(或八种)模式。______________ 1似乎没有任何以“mm”结尾的实际英文单词,但此模式将匹配“Grimm”和“Hamm”等名称,以及“comm”和“DIMM”等缩写(如果您使用
匹配大写或小写的“M”)。
[Mm]