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

标签 c# asp.net-mvc regex url

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

<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 到 srchref 的相对路径,而不管您或外部文件存储在路上所做的更改。

关于c# - 正则表达式:相对 URL 的绝对 URL (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2471938/

相关文章:

c# - Asp.net core + EF Code优先,迁移不同项目中的文件

c# - 如何使用后期绑定(bind)从 VB.Net 调用位于 C# DLL 中的方法

c# - WPF 列表框复制到剪贴板

c# - MVC 生成的 Bootstrap 表没有响应

c# - 从 C# 导出 SQL Server 数据库并重新导入

javascript - 使用 jquery 更改 javascript 变量

javascript - 通过 Controller 加载图像问题

c# - 如何在 C# 中找到两个标记字符之间的可变长度字符串?

用于在代码存储库中搜索或抓取复杂密码的正则表达式

java - JAVA中匹配未转义引号的正则表达式