如何在HTML字符串中用〜/替换http:// locallhost

时间:2019-04-01 15:34:08

标签: c# html asp.net regex

我想在"http://localhost:59455/"之前的下面的C#代码中替换每个"Images/TestFiles/(file name)"

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 个答案:

答案 0 :(得分:1)

*贪婪,并且匹配从前一个http到最后一个/Images的所有内容。添加?以使其懒惰

http.*?/Images

More information on greedy and lazy quantifiers on MSDN

This Regex on Regex Storm

但是请注意,您的正则表达式还将匹配其中包含/Images的其他路径,例如:

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

因此,您可能希望使其更具限制性。