我有以下两种情况,我需要替换href=".."
值或src=".."
值。
模式是
<img src="/~/media/75F8BA07F3BC4C3F91A71D6A049E6BD4.ashx" alt="" />
<a href="/~/link.aspx?_id=2CD5F3FBD0334A7DA7CB81F9520BEED5&_z=z">Some text</a>
GUID总是长度为32个字符,找到后,我需要用新值替换元素的整个href og src标记。
关于如何做到这一点的任何想法?
答案 0 :(得分:1)
这是您需要的模式:
(src="(\/~\/media\/([A-Z0-9]{32})\.ashx)")|(href="(\/~\/link\.aspx\?_id=([A-Z0-9]{32})&_z=z"))
查看DEMO
答案 1 :(得分:0)
以下是您所描述的替换图片代码的代码:
string input = "<img src="/~/media/75F8BA07F3BC4C3F91A71D6A049E6BD4.ashx" alt="" />";
input = Regex.Replace(input,
@"<img [^>]*src=""/~/([^/]+)/[A-Z0-9]{32}[^""]*""[^>]*/>",
"<img src=\"/$1/myfolder/myimage.png\" alt=\"\" />");
我会对锚标签进行单独更换,我会将此作为后续练习留给您。
顺便说一下,使用正则表达式操作HTML通常是不好的做法,所以如果可能的话,你可能想要远离它。