骨のダイスを転がそう
2012-02-21
_ [正規表現] 先読みを誤解していた。
css から正規表現で、長さ指定だけを抽出したいとか思い、
#class{ margin: 10px 10px 10px 10px; }
といったところに、
(?=:|\s+)\d+(px|em|%)
とやっても上手く行かない。あれ?この場合、
「コロンかスペース」が手前に存在していて、後ろに、px,em,% のどれかが付いている場所
を選択してくれるんじゃないの?
どうもこれはよくある誤解みたいで、上の例で行く \d+ でヒットした数値の中で、 (?= ) 内部の条件に合致したものだけがヒットするらしい。\d+ でかつ、 :|\s+ というのはありえないから当然ヒットしない。
(?<=:|\s+)\d+(px|em|%)
こうすれば良いらしい。
[ツッコミを入れる]