From: TOYOFUKU Chikanobu Date: 2002-04-02T15:11:08+09:00 Subject: [ruby-list:34725] Re: 漢数字 -> 数 豊福です。 高石さん >> s.tr!("〇一ニ三二四五六七八九", "0123456789") > > trの中にカタカナの「ニ」が入っててちょっとはまりました(^^;; こりゃ失礼しました。しかも「〇一ニ三二四」ってなってるし。 高石さんのを参考に自分のも書き換えて見ました。 s = s.tr("〇一二三四五六七八九", "0123456789") s.gsub!(/([^0-9])(?=[千百十])/, "\\11"); s.sub!(/^[千百十]/, "1\&"); us = ["兆", "億", "[万萬]", ""] rs = us.collect {|u| "(?:(?:(\\d+)千)?(?:(\\d+)百)?(?:(\\d+)十)?(?:(\\d+))?#{u})?"}.join b = 1; t = 0 s.scan(Regexp.new(rs))[0].reverse.each {|c| t += b * c.to_i if (c); b *= 10 } p t --- 豊福 toyofuku@juice.or.jp