すべての漢字を取り出す正規表現
がとても参考になった。結局次のような単純なコードでよいらしい。
(文字コードは UTF-8 を仮定)
$KCODE = 'u'
require 'jcode'
puts 'aA0&!漢字です'.gsub(/[^一-龠]/, '')
ミソは、$KCODE = 'u' して require 'jcode' しないといけないということか。どうも上の正規表現は UTF-8 以外では使えないらしいのだが、まあいまどき、よい子のみなさんは UTF-8 以外なんて使ってませんよね・・・??