1

私は次のような文字列を持っています

rotate(32)translate(0、-284.35468)、translate(8545,84)matrix(d、f、g、s、g)translate(-58,88)

各関数は、コンマまたは空白で区切ることができます。

javascriptの正規表現を使用して、「translate」の括弧内にある情報のすべての出現箇所を見つけたいと思います。したがって、上記の例では、望ましい結果は次のようになります。

["0,-284.35468","8545,84","-58,88"]

具体的には、SVG仕様の「g」タグの「tranform」属性にある情報を解析したいと思います。ここで見つけることができますhttp://www.w3.org/TR/2011/REC-SVG11-20110816/coords.html#TransformAttribute

ありがとうございました

4

1 に答える 1

0

あなたはこのような少し何かを試すことができます:

var s = "rotate(32) translate(0,-284.35468),translate(8545,84) matrix(d,f,g,s,g) translate(-58,88)";

var re = /translate\(([^,]+,[^)]+)\)/g,
    results = [],
    c;

while (c = re.exec(s))
    results.push(c[1]);

// results is now ["0,-284.35468", "8545,84", "-58,88"]

「g」フラグを持つ正規表現でこの.exec()メソッドを繰り返し使用すると、連続する一致が見つかります。

この場合、によって返される配列の2番目の要素を.exec()取得します。これは、キャプチャ括弧内の正規表現の部分と一致する文字列の部分になるためです。

于 2012-10-06T02:19:45.817 に答える