骨のダイスを転がそう

2009|01|02|03|04|05|06|07|10|12|
2010|01|02|03|04|05|06|07|08|09|10|11|
2011|02|03|05|06|07|08|09|10|11|12|
2012|01|02|04|05|09|10|11|12|
2013|01|02|04|
2014|11|
2015|01|04|05|
2016|06|07|08|09|11|
2017|01|02|03|04|
2018|03|

2012-02-21

_ [正規表現] 先読みを誤解していた。

css から正規表現で、長さ指定だけを抽出したいとか思い、

#class{
  margin: 10px 10px 10px 10px;
}

といったところに、

(?=:|\s+)\d+(px|em|%)

とやっても上手く行かない。あれ?この場合、

「コロンかスペース」が手前に存在していて、後ろに、px,em,% のどれかが付いている場所

を選択してくれるんじゃないの?

どうもこれはよくある誤解みたいで、上の例で行く \d+ でヒットした数値の中で、 (?= ) 内部の条件に合致したものだけがヒットするらしい。\d+ でかつ、 :|\s+ というのはありえないから当然ヒットしない。

(?<=:|\s+)\d+(px|em|%)

こうすれば良いらしい。