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

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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值