Tag: character properties

使用\ d扫描字符串中的Unicode数字

根据Oniguruma文档 , \d字符类型匹配: 十进制数字char Unicode:General_Category – Decimal_Number 但是,在包含所有Decimal_Number字符的字符串中扫描\d导致只匹配拉丁0-9位数: #encoding: utf-8 require ‘open-uri’ html = open(“http://www.fileformat.info/info/unicode/category/Nd/list.htm”).read digits = html.scan(/U\+([\da-f]{4})/i).flatten.map{ |s| s.to_i(16) }.pack(‘U*’) puts digits.encoding, digits #=> UTF-8 #=> 0123456789٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹߀߁߂߃߄߅߆߇߈߉०१२३४५६७८९০১২৩৪৫৬৭৮৯੦੧੨… p RUBY_DESCRIPTION, digits.scan(/\d/) #=> “ruby 1.9.2p180 (2011-02-18) [i386-mingw32]” #=> [“0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”] 我误读了文档吗? 为什么不匹配其他Unicode数字,和/或有没有办法让它这样做?