使用“正常表达

时间:2015-08-12 11:33:56

标签: c# regex special-characters

将此视为输入字符串

... 
HTML.INPUT({value:function(){return Spacebars.mustache(e.lookup("counter"))}})
...

我想要一个正则表达式从上面的字符串中删除 <h1 class="h1class"><span style="font-weight: bold;">abc</span></h1>

我为style = [\ s \ w \ W] *“创建了一个正则表达式,但是”在表达式的末尾是不可接受的。 并且我也不能使用\ W,因为整个行将被选中style="font-weight: bold;",但我想要style="font-weight: bold;">abc</span></h1>

任何人都可以帮助我获得预期的结果。

提前完成..!

4 个答案:

答案 0 :(得分:2)

  

我想要一个正则表达式来删除style =&#34; font-weight:bold;&#34;来自上面的字符串。

为什么要将正则表达式用于固定字符串替换? String.Replace对你来说还不够吗?

input.Replace(@"style=""font-weight: bold;""", "");

话虽这么说,你真的不应该使用字符串方法处理HTML。使用解析器进行任何比上述更复杂的工作。

答案 1 :(得分:0)

string input = @"<h1 class=""h1class""><span style=""font-weight: bold; "">abc</span></h1>";
var output = Regex.Replace(input, @"style=\"".+?\""", "");

答案 2 :(得分:0)

以下是使用HtmlAgilityPack

获得所需结果的方法
var html= "<h1 class=\"h1class\"><span style=\"font-weight: bold;\">abc</span></h1>";
HtmlAgilityPack.HtmlDocument hap = new HtmlAgilityPack.HtmlDocument();
hap.LoadHtml(html);
var nodes = hap.DocumentNode.Descendants("span");
if (nodes != null)
    foreach (var node in nodes)
       if (!string.IsNullOrEmpty((node.GetAttributeValue("style", string.Empty))))
           node.Attributes["style"].Remove();
Console.WriteLine(hap.DocumentNode.OuterHtml);

输出:

<h1 class="h1class"><span>abc</span></h1>

您可以根据自己的要求进一步调整。

答案 3 :(得分:0)

这个正则表达式怎么样:

<([^>]*)(\sstyle=\".+?\"(\s|))(.*?)>

替换模式:

<$1$3>

systemtextregularexpressions.com上查看此Match.Replace演示。

enter image description here

结果:

enter image description here