Skip to main content
 首页 » 编程设计

c#之正则表达式:相对 URL 的绝对 URL (C#)

2024年01月25日23yxwkf

我需要一个正则表达式来对像下面这样的字符串运行,它会在特定条件下将绝对路径转换为相对路径。

<p>This website is <strong>really great</strong> and people love it <img alt="" src="http://localhost:1379/Content/js/fckeditor/editor/images/smiley/msn/teeth_smile.gif" /></p> 

规则:

  • 如果url包含“/Content/”我 想获取相对路径

  • 如果url不包含 “/Content/”,它是一个外部文件, 并且绝对路径应该保留

不幸的是,Regex 不是我的强项,这对我来说太高级了。如果有人可以提供一些提示,我将不胜感激。

提前致谢。

更新: 回答评论中的问题:

  • 在应用正则表达式时,所有 url 都将以“http://”开头
  • 这应该应用于 img 和 a 标签的 src 属性,而不是标签外的文本。

请您参考如下方法:

您应该考虑使用 Uri.MakeRelativeUri method - 您当前的算法依赖于路径中不包含“/Content/”的外部文件,这对我来说似乎有风险。 MakeRelativeUri 将确定是否可以创建从当前 Uri 到 src 或 href 的相对路径,而不管您或外部文件存储在路上所做的更改。