Как заменить http://locallhost на ~ / в HTML-строке - PullRequest
0 голосов
/ 01 апреля 2019

Я хочу заменить все "http://localhost:59455/" до "Images/TestFiles/(file name)" формы моего кода C # ниже.

string tags = @"<p><img class='img - fluid' src='http://localhost:59455/Images/TestFiles/1.JPG'></p><p><br></p><p><img class='img-fluid' src='http://localhost:59455/Images/TestFiles/2.JPG'></p>";
string final = Regex.Replace(tags, "http.*/Images", "~/Images");

Но это всегда дает мне неправильный результат, как показано ниже:

<p><img class='img - fluid' src='~/Images/TestFiles/2.JPG'></p>

ХотяЯ ожидал такого результата:

<p><img class='img - fluid' src='~/Images/TestFiles/1.JPG'></p><p><br></p><p><img class='img-fluid' src='~/Images/TestFiles/2.JPG'></p>

Как видите, он заменил только одного.

Пожалуйста, помогите.

1 Ответ

1 голос
/ 01 апреля 2019

* является жадным и соответствует всему от первого http до последнего /Images. Добавьте ?, чтобы сделать его ленивым :

http.*?/Images

Дополнительная информация о жадных и ленивых квантификаторах в MSDN

Это регулярное выражение для шторма регулярных выражений

Будьте осторожны, ваше регулярное выражение также будет совпадать с другими путями, в которых есть /Images, например, такими:

http://localhost:59455/Whatever/Images
http://localhost:59455/ImagesButDifferent

Так что, возможно, вы захотите сделать это более ограничительным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...