1

这是我获取“左”及其值的正则表达式。

/(left\s*:\s*)(\d+)?(px)/

我的问题是,它向左和向左拉填充。

vertical-align: top; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: list-item; width: 420px; position: absolute; top: 0px; left: 700px; height: 580px;

我怎样才能得到“左”和它的价值?

我在左前面放了一个 \s 并且有效......但我不能总是保证左前面会有一个空格。

谢谢...

4

2 回答 2

1
/(?:^|[^-])(left)\s*:\s*(\d+|auto)([a-z]{2})?/

将使用第 1 组中的“left”、第 2 组中的“700”和第 3 组中的“px”来获取您想要的内容

(?:^|[^-])= 字符串的开头,或非连字符

(left)=留下的字(捕获组1)

\s*:\s*= 带有可选空格字符的冒号

(\d+|auto)= 一个或多个数字,或字符串“auto”(捕获组 2)

([a-z]{2})?= 两个字母,例如“px”“em”“pt”(捕获组 3 - 可选)

于 2013-09-25T14:34:31.900 回答
0

您可以使用 CSS 解析器,而不是使用 RegEx。这是一个更强大的解决方案,因为解析器更适合此任务。

使用 Python 和cssutils的示例

例子.css

.myClass {
    border: 1px solid black;
    margin-left: 100px;
    left: 700px;
    padding-left: 50px;
}

左手.py

#!/usr/bin/env python

import cssutils
sheet = cssutils.parseFile('example.css')

for rule in sheet:
    if rule.type == rule.STYLE_RULE:
        for prop in rule.style:
            if prop.name == 'left':
                print("{0}: {1}".format(prop.name, prop.value))

在此 Python 脚本中,prop.name将返回属性的名称prop.value及其值。

输出

$ ./get-left.py 
left: 700px
于 2013-09-25T15:47:16.093 回答