Ошибка при замене строки именем математической функции - PullRequest
0 голосов
/ 09 октября 2019

У меня есть строка: <p><img title="\pi a{^{2}}" src="http://latex.codecogs.com/gif.latex?\pi&amp;space;a{^{2}}" /></p> Я хочу заменить ее на строку base64.

Код:

string soalP = file.Path;
string decodeFile = Uri.UnescapeDataString(file.DisplayName);
byte[] imageArray = System.IO.File.ReadAllBytes(soalP);
string base64ImageRepresentation = Convert.ToBase64String(imageArray);
soal = Regex.Replace(soal, "\"http://latex.codecogs.com/gif.latex?" + "\\" + decodeFile + "\"", "data:image/jpeg;base64," + base64ImageRepresentation);

У меня есть сообщение об ошибке:

parsing '"http://latex.codecogs.com/gif.latex?\pi&space;a{^{2}}"' - сбой искаженного символа \ p {X}.

Как с ним справиться?

Примечание:

IСначала загрузили изображение и сохранили его в локальной папке.

Имя файла - это закодированное имя файла

1 Ответ

0 голосов
/ 10 октября 2019

Поскольку вы используете регулярные выражения, в методе Regex.Replace () второй аргумент обрабатывается как регулярное выражение для синтаксического анализа. Если в строке есть специальные символы, она может быть ошибочно принята за разрешение символов регулярного выражения, что приводит к сбою. Если вы все еще не понимаете обратную косую черту, вы можете использовать метод string.Replace () для замены символов.

soal = soal.Replace("\"http://latex.codecogs.com/gif.latex?" + "\\" + decodeFile + "\"", "data:image/jpeg;base64," + base64ImageRepresentation);
...