using (WordprocessingDocument wordDoc =
WordprocessingDocument.Open(document, true))
{
string docText = null;
using (StreamReader sr =
new StreamReader(wordDoc.MainDocumentPart.GetStream()))
{
docText = sr.ReadToEnd();
}
Regex regexText = new Regex("@@[email protected]@");
docText = regexText.Replace(docText, "john thomas ");
using (StreamWriter sw =
new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))
{
sw.Write(docText);
}
}
這應該用代碼中的名稱替換doctext上的匹配項。我檢查了doctext和替換字(@@[email protected]@
)是分裂的。在 @@
和[email protected]@
之間有時會有XML內容。有時這個詞本身是畸形的。Docx內容替換
如何替換@@[email protected]@
?
爲什麼你不使用處理合並功能來提供字段的內容而不是濫用正則表達式? –
作爲DOCX文件格式專家,我真的懷疑你可以使用字符串函數對DOCX文件的內容進行操作。我建議使用Aspose.Words或[Spire](http://www.e-iceblue.com/Introduce/word-for-net-introduce.html)。 –