C# 在字符串中间插入字符串
本文关键字:字符串 插入 中间 | 更新日期: 2023-09-27 18:35:45
我有一个很长的字符串。在对字符串进行数据绑定之前,我希望能够通过插入更多文本来修改字符串。例如,我有一个字符串<a href="/a/info/a.html"><img src="/userimage/imgs.jpg"/></a>
我需要在/a 之前和/userimage 之前插入 http://m.mydom.com。请注意,这将始终相同,因此可以肯定地说,我要添加到的字符串将是一致的。我想用 lamda 或只用 c# 来做这件事。感谢您的任何帮助。
如果需要对页面上的所有相对路径执行此操作,则使用 C# 完成此操作实际上并不是最好的工具。
HTML 附带一个名为 base
的元素(请参阅规范信息),用于显式指定文档的基本 URI。 如果您将 HTML 更改为如下所示的内容:
<head>
<base href="http://m.mydom.com">
</head>
<body>
<a href="/a/info/a.html"><img src="/userimage/imgs.jpg"/></a>
</body>
图像和定位点都将指向正确的基底。 不相信我? 看看这个jsFiddle演示了base
的惊人之处。
你不能只使用 String.Replace?
var s = "<a href='"/a/info/a.html'"><img src='"/userimage/imgs.jpg'"/></a>";
s.Replace("'"/a","'"http://m.mydom.com/a").Replace("'"/userimage", "'"http://m.mydom.com/userimage");
不是最好的方法,您始终可以使用正则表达式。
您可以使用简单的正则表达式:
var regex = new Regex("(?<=(src|href)='")([^'"]*)");
var s = "<a href='"/a/info/a.html'"><img src='"/userimage/imgs.jpg'"/></a>";
Console.WriteLine(regex.Replace(s, "http://m.mydom.com$0"));
(?<=...)
是回头看; $0
是捕获组0
的内容,这是替换前的链接内容。