Регулярные выражения здесь не подходят. Вы должны иметь код, подобный следующему (отказ от ответственности: я не программист на Ruby):
# coding: utf-8
str = "This is a string containing 中文 characters. Some more characters - 中华人民共和国 ";
str.each_char { |c|
if c.ord >= 0x4E00 && c.ord <= 0x9FFF
# found a chinese character - process it somehow.
puts c
end
}
Вы по существу проверяете, находится ли символ в диапазоне общих китайских символов в Юникоде. Это не полный диапазон hanzi (китайские иероглифы). Если вам необходимо обнаружить редкие или исторические символы, вам просто нужно добавить перечисленные диапазоны здесь к логической проверке.