这是我的正则表达式,以获得“左”及其值。
/(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放在左前方并且有效...但我不能总是保证左前方会有一个空间。
...谢谢
答案 0 :(得分:1)
/(?:^|[^-])(left)\s*:\s*(\d+|auto)([a-z]{2})?/
将在第1组中使用“left”获取所需内容,第2组中使用“700”,第3组中使用“px”
(?:^|[^-])
=字符串的开头或非连字符
(left)
=单词left(capture group 1)
\s*:\s*
=一个带有可选空格字符的冒号
(\d+|auto)
=一个或多个数字,或字符串“auto”(捕获组2)
([a-z]{2})?
=两个字母,例如“px”“em”“pt”(捕获组3 - 可选)
答案 1 :(得分:0)
您可以使用CSS解析器,而不是使用RegEx。这是一个更强大的解决方案,因为解析器更适合此任务。
.myClass {
border: 1px solid black;
margin-left: 100px;
left: 700px;
padding-left: 50px;
}
#!/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