使用正则表达式替换 MS Word 文档中的文本字符串

使用正则表达式替换 MS Word 文档中的文本字符串

我有以下协议名称,如 GR232 或 GR485,我希望用表达式“GR”后跟连字符和相应的三位数替换它们,例如 GR-232 或 GR-485。我尝试过使用 MS Word,但总是出现相同的错误

查找内容: (<[a-zA-Z]>){2;} (<[0-9]>){2;}

替换为:(<[a-zA-Z]>)-(<[0-9]>)

到目前为止,我只是在学习与 Microsoft 正则表达式相关的所有内容,所以我想不出解决方案。非常感谢您的帮助!

答案1

MS Word 正则表达式不是真正的正则表达式。如果您想在 MS Word 中使用真正的正则表达式,VBA 是最佳选择。学习如何使用 MS Word 通配符的好地方:使用通配符查找和替换字符

您所要求的内容可以在 MS Word 中完成。但是,您的正则表达式存在一些问题:

  • ;: 在尝试查找至少/最大字符时,花括号内的符号无效。,必须使用。
  • 捕获的表达式将被替换为\1\2等,而不是正则表达式(<[a-zA-Z]>)或其他表达式。

请尝试以下操作:

  • 找什么:<([a-zA-Z]{2,})([0-9]{2,})>
  • 用。。。来代替:\1-\2
  • 选择Use wildcards
  • Replace All

相关内容