我有这个代码,它代表两个x'es之间的每个数字
doc.Find.Replacement.Font.Superscript = 1;
doc.Find.Text = "x([0-9]{1,5})x";
doc.Find.Replacement.Text = @"\1";
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'es之间标注所有字符,并认为这可能会有效:
doc.Find.Replacement.Font.Superscript = 1;
doc.Find.Text = "x([a-z]{1,5})x"; <-------- characters instead of numbers
doc.Find.Replacement.Text = @"\1";
doc.Find.MatchWildcards = true;
...
但它不起作用。此外,我不确定以下行是做什么的。
doc.Find.Replacement.Text = @"\1";
答案 0 :(得分:1)
尝试
doc.Find.Text = "x([a-wy-z]{1,5})x"; <-------- characters instead of numbers
因为你想让“x”“结束”匹配,所以它不能成为匹配的一部分: - )
doc.Find.Replacement.Text = @"\1";
表示必须将(...)
之间的文字替换为(...)
之间的文字(因此只删除了x-es
)。显然,格式化是在替换的文本上完成的。 \1
表示与第一个(...)
匹配的文字。如果您有多个(...)(...)
,则会将其编号为\1
,\2
,...