Я использую регулярные выражения для поиска по простому тексту, возвращенному следующим свойством:
namespace Microsoft.Office.Interop.Word
{
public class Range
{
...
public string Text { get; set; }
...
}
}
На основе совпадений я хочу внести изменения в форматированный текст, который соответствует простому тексту.У меня проблема в том, что индексы символов в свойстве .Text
не совпадают со свойствами .Start
и .End
объекта Range
.Кто-нибудь знает какой-либо способ сопоставить эти показатели?
(я не могу использовать возможности поиска по шаблону Word (в качестве замены для регулярных выражений .NET), потому что они недостаточно мощны для шаблонов, которые я ищу (не жадные операторы и т. Д.))
Я могу переместить правильное количество символов, начиная с Document.Range().Collapse(WdCollapseStart)
, а затем range.MoveStart(WdUnitChar, match.Index)
, поскольку перемещение по символам совпадает с позицией форматированного текста и совпадает с совпадениями в простом тексте.
Моя проблема сейчас в том, что я всегда на 4 символа слишком далеко в форматированном тексте ... так что, может быть, это как-то связано с другими сюжетными диапазонами?Я не уверен ...