Замена текста с помощью Open XML SDK - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть небольшая программа, которая генерирует некоторые документы, принимая пользовательский ввод и записывая замену строки в шаблоне. У меня есть некоторые переменные, такие как даты и имя человека, создавшего документ. Но у меня есть две переменные, широта и долгота, которые я не могу заменить в сгенерированном документе. В используемом шаблоне документа все поля, которые необходимо заменить, имеют следующий формат: {поле}. Таким образом, замена имени выглядит следующим образом: {имя}. Все полдюжины переменных у меня работают, кроме долготы и широты. Эти числа являются координатами сетки, поэтому они пишутся как 12.3456,-98.7654. Я определяю их как строку (вместе со всеми моими другими переменными). Я думаю, что мое регулярное выражение неверно / сломан.

Например, функции долготы выглядят так:

 Console.WriteLine("Enter Longitude");
 longitude = Console.ReadLine();
 Console.WriteLine($"Longitude: {longitude}");

И регулярное выражение, заменяющее текст в документе, выглядит так:

Regex regexLongitude = new Regex("{longitude}");
docText = regexLongitude.Replace(docText, longitude);

Функция широты идентична, просто замените longitude на latitude. Фактически, все мои переменные определены и используются в этих же функциях.

Эта проблема является последовательной и воспроизводимой. Я попытался переименовать переменную, переопределив переменную как число с плавающей точкой (что, я думаю, я не сделал правильно), даже просто используя случайную строку чисел без десятичной точки. Даже если я использую текст, например abc для координат, они не заменяются. Что-то в регулярном выражении просто пропускает это. Я занимался исследованиями в течение последних нескольких дней и теперь в растерянности.

1 Ответ

0 голосов
/ 14 сентября 2018

Ваше регулярное выражение неверно.Я не уверен, понял ли я, что вы хотите сделать, но я думаю, что все, что вам нужно, это заменить слово на другое, верно?Все, что вам нужно, это

попробуйте это: var text = "{field} bla bla bla bla {field}"; var coordinate = "123.002-123-000"; var replacedText = text.Replace("{field} ",coordinate); Console.WriteLine(replacedText);

ваш ответ будет: 123.002-123-000 bla bla bla bla 123.002-123-000

...