我想将CSS中的边框属性分解成其组成部分,即:
.someClass{
border: 1px solid black;
}
Into
border-width: 1px
border-style: solid;
border-color: black;
我已经拆分了冒号和分号,因此只需要解析属性值部分。
在 CSS 中,你可以同时使用上述三个属性的任意组合。
border: 1px solid;
border: solid Gold;
border: 1em;
border: 1mm #000000;
border: 1px inset rgb(12, 44, 199);
所有的都是合法的,所以我需要对此进行核算。
目前为止我的进展如下:
([0-9]+[a-zA-Z|%]+)* *([a-zA-Z]*) *( .*)
这对于正常情况下是有效的,但是在“1px Solid”情况下会失败,因为Solid被放入第3个捕获组而不是第2个。我不是一个正则表达式专家,所以我可能犯了非常基本的错误,但是任何帮助都将不胜感激。我正在使用C#进行开发(但主要在http://gskinner.com/RegExr/测试,所以任何差异可能是问题所在)