Замените путь изображения к строке base64 несколькими, содержащими строку - PullRequest
0 голосов
/ 08 октября 2019

У меня есть строка, содержащая «https://tryout.pendukasi.id/upload/"», и я хочу заменить каждую строку, содержащую «https://tryout.pendukasi.id/upload/", на« data: image / jpeg; base64 ».

Код:

foreach (StorageFile file in files)
{
    string soalP = file.Path;
    if (question.Pertanyaan.ToString().Contains("https://tryout.pendidikan.id/upload/"))
    {
        byte[] imageArray = System.IO.File.ReadAllBytes(soalP);
            string base64ImageRepresentation = Convert.ToBase64String(imageArray);
            soal = Regex.Replace(question.Pertanyaan.ToString(), "\"https://tryout.pendidikan.id/upload/" + file.Name + "\"", "data:image/jpeg;base64," + base64ImageRepresentation);
    }
}

У меня проблема, если строка содержит один "https://tryout.pendukasi.id/upload/",, то строка успешно заменяется, но если она содержит несколько" https://tryout.pendukasi.id/upload/",, например: "<p>Perhatikan ayat-ayat Surat al-Falaq berikut ini!<br /><img src=\"https://tryout.pendidikan.id/upload/3-1.JPG\" /><br /><img src=\"https://tryout.pendidikan.id/upload/3-2.JPG\" /><br /><img src=\"https://tryout.pendidikan.id/upload/3-3.JPG\" /><br /><img src=\"https://tryout.pendidikan.id/upload/3-4.JPG\" /><br /><img src=\"https://tryout.pendidikan.id/upload/3-5.JPG\" /><br />Urutan ayat dalam Surat al-Falaq yang benar adalah &hellip;.</p>", то строка не была успешно изменена. Как решить эту проблему?

1 Ответ

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

Это происходит потому, что вы заменяете файл на файл, а его предыдущее изменение постоянно изменяется на:

soal = Regex.Replace(question.Pertanyaan.ToString(), "\"https://tryout.pendidikan.id/upload/" + file.Name + "\"", "data:image/jpeg;base64," + base64ImageRepresentation);

Подход может состоять в том, чтобы сохранить замененную строку регулярного выражения в переменную. При этом ваши замены не будут перезаписаны:

string soal = question.Pertanyaan.ToString();

foreach (StorageFile file in files)
{
    string soalP = file.Path;
    if (soal.Contains("https://tryout.pendidikan.id/upload/"))
    {
        byte[] imageArray = System.IO.File.ReadAllBytes(soalP);
            string base64ImageRepresentation = Convert.ToBase64String(imageArray);
            soal = Regex.Replace(soal, "\"https://tryout.pendidikan.id/upload/" + file.Name + "\"", "data:image/jpeg;base64," + base64ImageRepresentation);
    }
}
...