首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用拼音获取包含中文字符的整个字符串?

如何使用拼音获取包含中文字符的整个字符串?
EN

Stack Overflow用户
提问于 2013-01-12 22:03:59
回答 2查看 723关注 0票数 2

例如,1.txt

代码语言:javascript
运行
复制
a = "攻击力
非常高"

b = "防御力"
c = "防御力是#{example}"
d = "xyz"

我想要结果:

代码语言:javascript
运行
复制
"攻击力
非常高"

"防御力"

"防御力是#{example}"

也没有"xyz",因为它不包含中文字符。

我测试了/(\p{Han}+)/,但它不是我想要的。

提前谢谢你。

下面是我的示例:regex example

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-12 23:57:10

使正则表达式尽可能简单:

代码语言:javascript
运行
复制
# 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
票数 1
EN

Stack Overflow用户

发布于 2013-01-12 22:14:05

这可能会对您有所帮助:/([^[:ascii:]]+)/,一个选择输入中所有非ascii符号的正则表达式。我在你的例子上试了一下,它实际上只选择了中文字符。

您要搜索的正则表达式可能是:

代码语言:javascript
运行
复制
/("[^"]*[^[:ascii:]]+[^"]*")/

如果我没弄错你需要的东西。

我的工作是:

至少有一个非ascii符号#"#[^"]*[^[:ascii:]]+[^"]*")

  • Then应以"#[^"]*#[^[:ascii:]]+[^"]*")

  • Then "[^"]*#[^[:ascii:]]+#[^"]*")

  • Then开头"[^"]*[^[:ascii:]]+#[^"]*#")

  • And应以"[^"]*[^[:ascii:]]+[^"]*#"#)

  • 结尾" "字符串应以ascii开头"具有任意数量的非ascii字符
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14294054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档