例えば、1.txt
a = "攻击力
非常高"
b = "防御力"
c = "防御力是#{example}"
d = "xyz"
結果が欲しい:
"攻击力
非常高"
"防御力"
"防御力是#{example}"
"xyz"
漢字が入っていないのでありません。
私はテスト しまし/(\p{Han}+)/
たが、それは私が望むものではありません。
前もって感謝します。
これが私の例です:正規表現の例
これはあなたを助けるかもしれません:/([^[:ascii:]]+)/
入力内のすべての非ASCII記号を選択する正規表現。あなたの例で試してみましたが、実際には漢字のみが選択されます。
あなたが探している正規表現はおそらく次のとおりです。
/("[^"]*[^[:ascii:]]+[^"]*")/
私があなたが必要とするものを正しく手に入れたら。
私がやること:
"
#"#[^"]*[^[:ascii:]]+[^"]*")
"
文字があります"#[^"]*#[^[:ascii:]]+[^"]*")
"[^"]*#[^[:ascii:]]+#[^"]*")
"
文字があります"[^"]*[^[:ascii:]]+#[^"]*#")
"
"[^"]*[^[:ascii:]]+[^"]*#"#)
正規表現を可能な限りシンプルに保つ:
# encoding: utf-8
a = "攻击力
非常高"
b = "防御力"
c = "防御力是example"
d = "xyz"
puts [a,b,c,d].select{|str| str =~ /\p{Han}/ }
# 攻击力
# 非常高
# 防御力
# 防御力是example
or, in case of one string:
# encoding: utf-8
a = "攻击力非常高
防御力
防御力是example
xyz"
puts a.lines.select{|line| line =~ /\p{Han}/ }.join