使用RegEx查找模式并替换

时间:2018-01-27 06:39:06

标签: c# asp.net regex

我有以下两种情况,我需要替换href=".."值或src=".."值。

模式是

  • <img src="/~/media/75F8BA07F3BC4C3F91A71D6A049E6BD4.ashx" alt="" />
  • <a href="/~/link.aspx?_id=2CD5F3FBD0334A7DA7CB81F9520BEED5&amp;_z=z">Some text</a>

GUID总是长度为32个字符,找到后,我需要用新值替换元素的整个href og src标记。

关于如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:1)

这是您需要的模式:

(src="(\/~\/media\/([A-Z0-9]{32})\.ashx)")|(href="(\/~\/link\.aspx\?_id=([A-Z0-9]{32})&amp;_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通常是不好的做法,所以如果可能的话,你可能想要远离它。