Comment detail

文字列からの情報抽出 (Nested Flatten)
Gaucheには名前付きサブマッチがあるんですが、これを解こうとしていてバグを見つけました。
(マッチしなかった名前付きサブマッチを問い合わせると#fではなく""が返ってしまう)

というわけで普通にregexpを使った回答です。
1
2
3
4
5
6
7
(define (pick string)
  (cond
   ((#/([a-zA-Z]+)(-hidden)?(?:-(small|big))?\.([a-zA-Z]+)/ string)
    => (lambda (m)
         (print "name: '"(m 1)"', ext: '"(m 4)"', size: "(or (m 3) "normal")
                ", hidden: "(if (m 2)"True" "False"))
         (pick (m'after))))))

Index

Feed

Other

Link

Pathtraq

loading...