例如,1.txt
a = "攻击力
非常高"
b = "防御力"
c = "防御力是#{example}"
d = "xyz"我想要结果:
"攻击力
非常高"
"防御力"
"防御力是#{example}"也没有"xyz",因为它不包含中文字符。
我测试了/(\p{Han}+)/,但它不是我想要的。
提前谢谢你。
下面是我的示例:regex example
发布于 2013-01-12 23:57:10
使正则表达式尽可能简单:
# 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发布于 2013-01-12 22:14:05
这可能会对您有所帮助:/([^[:ascii:]]+)/,一个选择输入中所有非ascii符号的正则表达式。我在你的例子上试了一下,它实际上只选择了中文字符。
您要搜索的正则表达式可能是:
/("[^"]*[^[:ascii:]]+[^"]*")/如果我没弄错你需要的东西。
我的工作是:
至少有一个非ascii符号#"#[^"]*[^[:ascii:]]+[^"]*")
"#[^"]*#[^[:ascii:]]+[^"]*")
"[^"]*#[^[:ascii:]]+#[^"]*")
"[^"]*[^[:ascii:]]+#[^"]*#")
"[^"]*[^[:ascii:]]+[^"]*#"#)
" "字符串应以ascii开头"具有任意数量的非ascii字符https://stackoverflow.com/questions/14294054
复制相似问题