2009-03-23
■ [biwascheme] 正規表現のバックスラッシュ
最近、BiwaSchemeで簡単なアプリを書こうとしている。やはり使ってみるといろいろ不便な点が見えてくるものだ。
例えば正規表現で文字列から数値部分を抜き出すとき、
(regexp-exec (string->regexp "(\\\\d+)") str)
と、バックスラッシュを4つ書かなくてはならない(elispか)。
が、(load "util.scm")のようにしてこのコードを外に出すと、バックスラッシュが2つでいい(でなければならない)ことに気づいた。 scriptタグの中でなくなるからだな。
さらに、regexp-execの第一引数が文字列だった場合はRegExpに変換するようにしたので、
(regexp-exec "(\\d+)" str)
と書けるようになった。
正規表現リテラルを導入すれば
(regexp-exec #/(\d+)/ str)
までシンプルにできそうだけど、これは後回しで。