我有以下协议名称,如 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