如何在 html 字符串中将 http://localhost 替换为 ~/

Posted

技术标签:

【中文标题】如何在 html 字符串中将 http://localhost 替换为 ~/【英文标题】:How to replace http://locallhost with ~/ in html string 【发布时间】:2019-08-22 20:01:39 【问题描述】:

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

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】:

*贪婪的,它匹配从第一个 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

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

【讨论】:

以上是关于如何在 html 字符串中将 http://localhost 替换为 ~/的主要内容,如果未能解决你的问题,请参考以下文章

如何在 html 字符串中将 http://localhost 替换为 ~/

如何在 Python 中将字符串与 HTML 连接以进行 PUT 请求?

如何在 Next JS 应用程序中将字符串转换为 HTML 元素?

如何在谷歌应用脚​​本中将段落 html 字符串转换为没有 html 标签的纯文本?

Thymeleaf - 如何在 Thymeleaf 标签“th:if”中将字符串与 html 中的请求参数进行比较?

如何在 Swift 3 中将 HTML 文本转换为属性字符串而不丢失换行符 [重复]