用数学函数名称替换字符串时出错
Error when replace string with mathematics function name
我有一个字符串:<p><img title="\pi a{^{2}}" src="http://latex.codecogs.com/gif.latex?\pi&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}}"' - Malformed \p{X} character escape.
如何处理?
注:
我先下载了图片,保存在本地文件夹里
文件名是编码后的文件名
由于你使用的是正则表达式,所以在Regex.Replace()方法中,将第二个参数作为正则表达式进行解析。当字符串中有特殊字符时,可能会误认为是正则表达式的符号解析,导致失败。如果你对反斜杠还很迷惑,可以使用string.Replace()方法进行字符替换
soal = soal.Replace("\"http://latex.codecogs.com/gif.latex?" + "\" + decodeFile + "\"", "data:image/jpeg;base64," + base64ImageRepresentation);
我有一个字符串:<p><img title="\pi a{^{2}}" src="http://latex.codecogs.com/gif.latex?\pi&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}}"' - Malformed \p{X} character escape.
如何处理?
注:
我先下载了图片,保存在本地文件夹里
文件名是编码后的文件名
由于你使用的是正则表达式,所以在Regex.Replace()方法中,将第二个参数作为正则表达式进行解析。当字符串中有特殊字符时,可能会误认为是正则表达式的符号解析,导致失败。如果你对反斜杠还很迷惑,可以使用string.Replace()方法进行字符替换
soal = soal.Replace("\"http://latex.codecogs.com/gif.latex?" + "\" + decodeFile + "\"", "data:image/jpeg;base64," + base64ImageRepresentation);