zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Aspose.Words for .NET查找和替换教程——查找或替换特定字符串

Net教程 for 字符串 查找 替换 特定 words
2023-09-11 14:14:49 时间

Aspose.Words For .Net是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外,API支持所有流行的Word处理文件格式,并允许将Word文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

接下来我们将进入“查找和替换”的介绍,在Aspose.Words中查找或替换当前范围内的特定字符串。​​​​​​​


使用Range.Replace查找或替换当前范围内的特定字符串。它返回已进行的替换的次数,因此对于搜索没有替换的字符串很有用。 该Range.Replace 方法提供几个重载。他们提供了以下可能性:

  • 可以指定要替换的字符串,将替换所有出现的字符串,替换是否区分大小写以及是否仅影响独立单词。请注意,单词被定义为仅由字母数字字符组成。如果仅在整个单词匹配的情况下执行了替换操作,并且输入字符串恰好包含符号,那么将找不到任何短语。
  • 可以传递用于查找匹配项的正则表达式模式以及将替换它们的字符串。此重载替换了正则表达式捕获的整个匹配项。
  • 可以传递正则表达式模式和实现IReplacingCallback接口的对象。

以下示例显示如何使用上述重载。示例类提供了方法,每个方法都使用Range.Replace重载:

  • 示例1只是将所有出现的单词“ sad”替换为“ bad”。
  • 示例2将所有出现的单词“ sad”或“ mad”替换为“ bad”。
  • 示例3使用替换评估程序方法将单词“ sad”或“ bad”的出现与每次发现新出现时递增的计数器值连接起来。

示例一:用另一个单词替换一个单词

//文档目录的路径。
string dataDir = RunExamples.GetDataDir_FindAndReplace();
string fileName = "Document.doc";
  
Document doc = new Document(dataDir + fileName);
doc.Range.Replace("sad", "bad", new FindReplaceOptions(FindReplaceDirection.Forward));

dataDir = dataDir + "ReplaceWithString_out.doc";
doc.Save(dataDir);

示例二:用彼此替换两个相似的单词

//文档目录的路径。
string dataDir = RunExamples.GetDataDir_FindAndReplace();

Document doc = new Document(dataDir + "Document.doc");

FindReplaceOptions options = new FindReplaceOptions();

doc.Range.Replace(new Regex("[s|m]ad"), "bad", options);

dataDir = dataDir + "ReplaceWithRegex_out.doc";
doc.Save(dataDir);

示例三:使用自定义评估程序

//文档目录的路径。
string dataDir = RunExamples.GetDataDir_FindAndReplace();
Document doc = new Document(dataDir + "Range.ReplaceWithEvaluator.doc");

FindReplaceOptions options = new FindReplaceOptions();   
options.ReplacingCallback = new MyReplaceEvaluator();

doc.Range.Replace(new Regex("[s|m]ad"), "", options);

dataDir = dataDir + "Range.ReplaceWithEvaluator_out.doc";
doc.Save(dataDir);
private class MyReplaceEvaluator : IReplacingCallback
{
    // This is called during a replace operation each time a match is found.
    /// This method appends a number to the match string and returns it as a replacement string.
    ///ReplaceAction IReplacingCallback.Replacing(ReplacingArgs e)
    {
        e.Replacement = e.Match.ToString() + mMatchNumber.ToString();
        mMatchNumber++;
        return ReplaceAction.Replace;
    }

    private int mMatchNumber;
}