正则表达式为html样式属性

时间:2010-02-16 17:34:34

标签: html regex

尝试获取正则表达式,我可以从下面的示例中获取样式属性值,这应该可以解释我的问题。

source:font-size:11pt; font-color:red; text-align:left;

想说给我..

  1. font-size并返回11pt
  2. font-color并返回红色
  3. text-align并返回左侧
  4. 有人能指出我正确的方向

    由于

3 个答案:

答案 0 :(得分:3)

这个问题让我想起了Jeff Atwood的博文, Parsing Html The Cthulhu Way 。这不是完全相同的问题,而是同样的情绪。不要用正则表达式解析CSS!有很多图书馆可以帮你做这件事。

答案 1 :(得分:0)

逻辑上你想要:

[确切短语] + 1冒号+ 0或更多空白字符+ 0或更多字符,直至第一个分号或结束语。

我认为这会让你朝着正确的方向前进:

font-size[:][\s]*[^;'"]*

陷阱:

  • 结束语可能是单引号或双引号,并且可能有一个有效的引用(例如,引用背景图片网址)

  • 这完全取决于没有以简写方式书写的样式

答案 2 :(得分:0)

var regex = new Regex(@"([\w-]+)\s*:\s*([^;]+)");
var match = regex.Match("font-size:11pt;font-color:red;text-align:left;");
while (match.Success)
{
    var key = match.Groups[1].Value;
    var value = match.Groups[2].Value;
    Console.WriteLine("{0} : {1}", key, value);
    match = match.NextMatch();
}

编辑:这不应该是一个“完整”的解决方案。它可能完成了80%的案例工作,而且最后的20%将是更昂贵的幅度; - )