トップ «前の日記(2009-03-22) 最新 次の日記(2009-03-24)» 編集

Route 477



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)

までシンプルにできそうだけど、これは後回しで。