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の「左」、グループ2の「700」、グループ3の「px」で必要なものを取得します

(?:^|[^-])= 文字列の先頭、またはハイフン以外の文字

(left)= 残された単語 (キャプチャ グループ 1)

\s*:\s*= オプションのスペース文字を両側に持つコロン

(\d+|auto)= 1 つ以上の数字、または文字列「auto」 (キャプチャ グループ 2)

([a-z]{2})?= 「px」「em」「pt」などの 2 文字 (キャプチャ グループ 3 - オプション)

于 2013-09-25T14:34:31.900 に答える
0

RegEx を使用する代わりに、CSS パーサーを使用できます。パーサーがこのタスクにより適しているため、これはより堅牢なソリューションです。

Python とcssutilsを使用した例

たとえば .css

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

get-left.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 に答える