将属性添加到具有特定值属性的元素

时间:2012-04-18 18:30:35

标签: regex c#-4.0

我正在寻找一个正则表达式,它将一个属性添加到已经具有特定值属性的元素。

例如:

<meta name="stack" />

我想在meta元素中添加一个属性name =“stack”的属性,使其看起来像

<meta name="stack" value="overflow" />

匹配和替换的一些C#代码也会有所帮助。

由于输入格式错误的xml,我无法使用XmlDocument或HtmlAgilityPack。

感谢。

2 个答案:

答案 0 :(得分:2)

从以下正则表达式开始...

<meta[^>]+name="stack"

并替换为......

$0 value="overflow"

替换字符串中的$0表示整个匹配。然后,您只需将value="overflow"附加到其末尾。

这是一个有效的例子......

http://regexhero.net/tester/?id=586c2040-8700-4ea2-a146-1477ca1bcb62

只需单击Regex Hero顶部的“.NET”按钮即可查看.NET代码。或者这是一个简化版......

return Regex.Replace(text, @"<meta[^>]+name=""stack""", @"$0 value=""overflow""");

答案 1 :(得分:2)

(<\s*meta\s+name\s*=\s*"stack")(\s*/>)

替换为

$1 value="overflow" $2