关于 find.replace 在 C# 中使用 interop.word

Regarding find.replace using interop.word in C#

我有这段代码,可以在两个 x 之间的每个数字上标

doc.Find.Replacement.Font.Superscript = 1;
doc.Find.Text = "x([0-9]{1,5})x";
doc.Find.Replacement.Text = @"";
doc.Find.MatchWildcards = true;

doc.Find.Execute(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Word.WdReplace.wdReplaceAll, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

我想要一个类似的函数,在两个 x' 之间为所有字符加上上标,我认为这也许可以解决问题:

doc.Find.Replacement.Font.Superscript = 1;
doc.Find.Text = "x([a-z]{1,5})x";   <-------- characters instead of numbers
doc.Find.Replacement.Text = @"";
doc.Find.MatchWildcards = true;

...

但是没用。我也不确定下面这行是做什么的。

doc.Find.Replacement.Text = @"";

尝试

doc.Find.Text = "x([a-wy-z]{1,5})x";   <-------- characters instead of numbers

因为要"x"到"end"匹配,所以不能是匹配的一部分:-)

doc.Find.Replacement.Text = @"";

意味着它必须用 (...) 之间的文本替换 (...) 之间的文本(因此只有 x-es 被删除)。很明显,格式化是在替换的文本上完成的。 </code> 表示匹配第一个 <code>(...) 的文本。如果您有多个 (...)(...),那么它们将被编号为 </code>、<code>、...