Incorrect match node range in ReplaceEvaluatorArgs

Using this sample code and attached file I tried to replace some text ("" as sample) with some any elemnt, but e.MatchNode.Range has invalid part of finded text (only some matches has right text and only if searching from end to beginning). Match is sucess, but Range is invalid.
C# code:

private void SomeMethod()
{
    Document doc = new Document("sample.rtf");
    doc.Range.Replace(new Regex(@"<(?[a-zA-Z0-9_:!]+)>"), new ReplaceEvaluator(ReplaceText), false);
    // ...
}
private ReplaceAction ReplaceText(object sender, ReplaceEvaluatorArgs e)
{
    // some logic here
    // but for attached sample first occurance^
    // e.Match = ""
    // e.MatchNode.Range.Text = "/ ___________________/<C" - ??? only two first symbols of match at the and and some other text at the beginning.
    return ReplaceAction.Skip;
}

Hi
Thanks for your inquiry. This could occur because matched text consists of multiple runs. You can try using JoinRunsWithSameFormatting to resolve this issue. Please see the following link for more information.
https://reference.aspose.com/words/net/aspose.words/document/joinrunswithsameformatting/
Also I would like to suggest you using MailMerge functionality to fill your template with data. Please see the following link for more information.
https://docs.aspose.com/words/net/types-of-mail-merge-operations/
Please let me know if you have any question regarding Aspose.Words, I will be glad to help you.
Best regards.