试图获得一个正则表达式,我可以从下面的例子中得到一个样式属性值应该解释一下我的问题。正则表达式HTML样式属性
源:字体大小:11磅;字型颜色:红;文本对齐:左;
想说给我..
- font-size和回报11磅
- 字体颜色,并返回红
- 文本对齐,返回左
可有人点我在正确的方向
感谢
李
试图获得一个正则表达式,我可以从下面的例子中得到一个样式属性值应该解释一下我的问题。正则表达式HTML样式属性
源:字体大小:11磅;字型颜色:红;文本对齐:左;
想说给我..
可有人点我在正确的方向
感谢
李
从逻辑上讲,你会想:
[精确短语] + 1个冒号+ 0或多个空格+ 0或更多字符,直到达到第一个分号或关闭报价。
我认为这将让你在正确的方向前进:
font-size[:][\s]*[^;'"]*
陷阱:
收盘报价可能是单面或双面并有可能成为内的有效报价(即,例如引用背景图片网址)
这完全取决于不用写在速记中的样式
这个问题让我想起了杰夫阿特伍德的博客文章,Parsing Html The Cthulhu Way。这是不完全一样的问题,但其同样的情绪。不要使用正则表达式解析CSS!有大量的图书馆为你做这个。
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%将是幅度更昂贵;-)
任何C#代码,它无法比拟的'内容:“;)”;'属性。 – kennytm
什么语言? regexs不都是一样的... – harschware
寻找一个JavaScript实现,但可以在港口当然 – monkeylee