• <menu id="w2i4a"></menu>
  • logo Aspose.Words使用教程

    文檔首頁>>Aspose.Words使用教程>>Aspose.Words使用教程之在文檔中找到并替換文本

    Aspose.Words使用教程之在文檔中找到并替換文本


      Aspose.Words是一款先進(jìn)的文檔處理控件,在不使用Microsoft Words的情況下,它可以使用戶在各個應(yīng)用程序中執(zhí)行各種文檔處理任務(wù),其中包括文檔的生成、修改、渲染、打印,文檔格式轉(zhuǎn)換和郵件合并等文檔處理。此外,Aspose.Words支持DOC,OOXML,RTF,HTML,OpenDocument, PDF, XPS, EPUB和其他格式。  

      使用范圍:在前的范圍內(nèi)替換查找或替換特定的字符串,因為它會返回替換的數(shù)量,所以它是在沒有替換的條件下搜索字符串是非常有用的。如果一個捕獲或替換包含一個或多個特殊字符:段落,細(xì)胞破裂,部分?jǐn)嗔?現(xiàn)場開始,字段分隔符、字段,內(nèi)聯(lián)圖片,繪畫對象,腳注的字符串時,會出現(xiàn)異常時。

    在一定的范圍內(nèi),替代方法提供了幾個過載。以下是他們提供的可能性:

    • 您可以指定一個字符串被替換,一旦被替換,所有這個字符串都將被替換,替換是否區(qū)分大小寫,或者只有獨立的單詞才會受到影響。注意一個詞被定義為僅由字母數(shù)字字符組成。如果只執(zhí)行替換匹配的整個單詞,輸入字符串包含了符號,那么這個單詞不會被搜索到。
    • 您可以通過一個正則表達(dá)式模式用于查找匹配和一個字符串,然后替換它們。這種過載替換通過正則表達(dá)式捕捉到整個匹配。
    • 你可以通過正則表達(dá)式模式和一個對象實現(xiàn)[{{ IReplacingCallback }}]接口。這提出了一個用戶定義的方法,它在每個步驟中評估替換,您也可以指示更換是應(yīng)該向前還是向后的方向。建議如果在更換過程中要刪除節(jié)點那么更換應(yīng)該向后執(zhí)行,以避免在更換過程中刪除節(jié)點有任何可能出現(xiàn)的潛在問題。一個實現(xiàn)回調(diào)接口的類將定義一個 [IReplacingCallback.Replacing]方法,它接受提供定制的替換數(shù)據(jù)操作[{ { ReplacingArgs } }]對象。這個方法應(yīng)該返回一個[{ { ReplaceAction } }]枚舉值,指定當(dāng)前匹配更換操作期間發(fā)生了什么——它是否應(yīng)該更換,跳過,或整個替換操作應(yīng)該終止。

    下面的例子展示如何使用前面提到的過載。樣例類提供的使用了Range.Replace 方法:

    • 示例1 將所有出現(xiàn)的“sad”替換為“bad”。
    • 示例2 將所有出現(xiàn)的“sad”或者“mad”替換成“bad”。
    • 示例3 使用替換評估方法來連接出現(xiàn)的單詞“sad”或“bad”,每出現(xiàn)一次計數(shù)值相應(yīng)增加。 

    Example 1: 用一個詞換另一個詞

    將所有出現(xiàn)的“sad”替換為“bad”。

    C#

    Document doc = new Document(MyDir + @"in.docx");
    
    
    doc.Range.Replace("sad", "bad", false, true);
    

    Visual Basic

    Dim doc As New Document(MyDir & "Document.doc")
    
    
    doc.Range.Replace("sad", "bad", False, True)

    Example 2: 用一個詞替換兩個相近的詞

    使用“bad”替換所有“sad”和“mad”。

    C#

    Document doc = new Document(MyDir + "Document.doc");
    
    
    doc.Range.Replace(new Regex("[s|m]ad"), "bad");

    Visual Basic

    Dim doc As New Document(MyDir & "Document.doc")
    
    
    doc.Range.Replace(New Regex("[s|m]ad"), "bad")

    Example 3:使用一個自定義計數(shù)器

    如何替換為一個自定義計數(shù)器

    C#

    public void ReplaceWithEvaluator()
    
    
    {
    
    
        Document doc = new Document(MyDir + "Range.ReplaceWithEvaluator.doc");
    
        doc.Range.Replace(new Regex("[s|m]ad"), new MyReplaceEvaluator(), true);
    
        doc.Save(MyDir + "Range.ReplaceWithEvaluator Out.doc");
    
    }
    
    private class MyReplaceEvaluator : IReplacingCallback
    
    {
    
        /// <summary>
    
        /// 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.
    
        /// </summary>
    
        ReplaceAction IReplacingCallback.Replacing(ReplacingArgs e)
    
        {
    
            e.Replacement = e.Match.ToString() + mMatchNumber.ToString();
    
            mMatchNumber++;
    
            return ReplaceAction.Replace;
    
        }
    
        private int mMatchNumber;
    
    }
    

    Visual Basic

    Public Sub ReplaceWithEvaluator()
    
        Dim doc As New Document(MyDir & "Range.ReplaceWithEvaluator.doc")
    
        doc.Range.Replace(New Regex("[s|m]ad"), New MyReplaceEvaluator(), True)
    
        doc.Save(MyDir & "Range.ReplaceWithEvaluator Out.doc")
    
    End Sub
    
    Private Class MyReplaceEvaluator
    
        Implements IReplacingCallback
    
        ''' <summary>
    
        ''' 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.
    
        Private Function IReplacingCallback_Replacing(ByVal e As ReplacingArgs) As ReplaceAction Implements IReplacingCallback.Replacing
    
            e.Replacement = e.Match.ToString() & mMatchNumber.ToString()
    
            mMatchNumber += 1
    
            Return ReplaceAction.Replace
    
        End Function
    
        Private mMatchNumber As Integer
    
    End Class
    
    
    立即下載Aspose.Words最新版
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();