テキストから日本語を抜き出す正規表現。失敗パターン、成功パターン
require 'pp'
Japanese = %r/[
\p{Hiragana}
\p{InKatakana}
\p{Han}
\p{InCJKSymbolsAndPunctuation}
\p{InCJKUnifiedIdeographs}
]{2,}/x # `+` -> `{2,}`
str = <<EOF
text in English
日本語のテキスト
にほんご の テキスト
EOF
pp str.scan(Japanese)
# => ["\n日本語のテキスト\nにほんご の テキスト\n"]
require 'pp'
Japanese = %r/[
\p{Hiragana}
\p{InKatakana}
\p{Han}
\p{InCJKSymbolsAndPunctuation}
\p{InCJKUnifiedIdeographs}
]+/x
str = <<EOF
text in English
日本語のテキスト
にほんご の テキスト
EOF
pp str.scan(Japanese)
# => [" ", " ", "\n日本語のテキスト\nにほんご の テキスト\n"]
pp str.scan(Japanese).select{|x| !x.include? ' '}
# => ["\n日本語のテキスト\nにほんご の テキスト\n"]