почему моя функция c # работает только таким образом? - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь заменить текст в файле docx на Open XML SDK, он работает нормально, поэтому он заменяет его, так как я пишу "привет" и слово "привет", передавая их непосредственно в regexText.Replace, вот так:

работает

public static void SearchAndReplace(string document, string find, string replaced)
    {
        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("hi");
            docText = regexText.Replace("hello");

            using (StreamWriter sw = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))
            {
                sw.Write(docText);
            }
        }
    }

но когда я пытаюсь вызвать функции, используя переданные переменные, код не заменяет слово "привет" словом "привет", но почему? что меняет код, чтобы он не работал? (я имею в виду, что код компилируется и не выдает никаких исключений, но он не заменяет)

не работает

SearchAndReplace("template.docx", "hi", "hello");

и измените это, ничего больше:

Regex regexText = new Regex(find);
docText = regexText.Replace(docText, replace);
...