在 Microsoft Word 2013 中查找并使用正则表达式替换

问题描述 投票:0回答:4

我正在编辑一个电子书文档,其中有很多不必要的标记。我在文本中有很多部分的代码与此类似:

<i>Some text here</i>

我正在尝试运行正则表达式查找和替换,它将查找两个 i 标签之间的任何短语,删除 i 标签,然后将样式应用于文本。

这是我用来搜索的:

Find: (<i>)(*)(</i>)
Replace: \2

我还选择“样式”>“i”(斜体)。这告诉我们的转换软件将斜体应用于文本。如果我留下 i 标签,最终会发生 ScribeNet 的转换过程将它们转换为十六进制值,以便它们在电子书中显示为文字文本。凌乱。

当我运行此搜索时,我没有得到任何结果。我选中了“使用通配符”。我缺少什么?根据微软的帮助网站,* 用于表示任意数量或类型的字符,并且单个字符串应该括在括号中。

regex string replace ms-word
4个回答
17
投票

要搜索定义为通配符的字符,请在该字符前放置反斜杠 (

\
)。
*
本身可以匹配任何字符串,因此请使用范围量词来匹配(
1
或更多次)

Find: \<i\>(*{1,})\</i\>
Replace: \1

14
投票

搜索

\<i\>(*{1,})\</i\>
并替换为
\1
。别忘了检查
Use wildcard

这里有一个Word“正则表达式”的参考表:https://web.archive.org/web/20140209231503/http://office.microsoft.com/en-ca/word-help/find-and -使用正则表达式高级替换文本HA102350661.aspx

  • <
    >
    是需要转义的特殊字符
  • *
    表示任意字符
  • {1,}
    表示一次或多次

0
投票

Microsoft Word 有一个名为“多重查找和替换”的特殊工具(请参阅 http://www.translatortools.net/products/transtoolsplus/word-multiplefindreplace),它可以解决 Word 的通配符限制。该工具可以使用标准正则表达式语法来搜索和替换Word文档中的任何文本。例如,要搜索任何 HTML 标签,您只需使用 <[^>]+> 即可查找开始、结束和独立的 HTML 标签。您可以将任意数量的表达式添加到列表中,然后在文档中搜索所有表达式、替换所有内容、查看输入的所有搜索表达式的所有匹配项、仅替换选定的匹配项等等。

我为翻译人员和编辑人员创建了它,但它对于 Word 中的任何高级搜索/替换操作都非常有用,我相信您会发现它非常有用。

斯坦尼斯拉夫


0
投票

你可以使用VBA,例如:

Public Sub ReplaceStringByRegex()
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "documentChange"  'this is string what you want to find (same string in your document)
    .Replacement.Text = "documentChange" & Rnd(1) 'this is a regex you want to replace
    .Forward = True
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

结束子

使用 RND() 生成随机数或任何你想要替换的东西

© www.soinside.com 2019 - 2024. All rights reserved.