首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从字符串中删除所有非正弦符号

从字符串中删除所有非正弦符号
EN

Stack Overflow用户
提问于 2013-05-07 19:47:12
回答 3查看 316关注 0票数 1

我想在我的表单上有一个字段,它可以包含一些符号,如#,$等。但对于另一种情况,我想只有字母,没有任何符号。如何删除所有非字母符号,并保留所有俄语字母

下面是一个小示例:

我有string "йцукен#$%йцукен"

最后,我想得到"йцукен йцукен"

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-07 19:57:13

试试这个:

代码语言:javascript
运行
复制
'йцукен#$%йцукен'.gsub(/\P{Cyrillic}++/, ' ')

解释:

\P{西里尔字母}是西里尔字母的字符类。

\P{西里尔字母}包含非西里尔字母的所有字符。

如果你想保留其他字符,你可以这样做:

代码语言:javascript
运行
复制
'123йцукен#$%йцукен456'.gsub(/[^\p{Cyrillic}0-9]++/, ' ')
票数 4
EN

Stack Overflow用户

发布于 2013-05-07 20:16:23

使用允许的字符列表进行暴力破解

代码语言:javascript
运行
复制
def filter(input, allowed)
  input.chars.inject('') do |result, char|
    result << char if allowed.include? char
    result
  end
end

test_string = 'abc$6&йцxyz'
allowed_characters = 'abcxyzйц'

puts filter(test_string, allowed_characters)
=> abcйцxyz
票数 0
EN

Stack Overflow用户

发布于 2013-05-07 20:52:30

问题中的表达式"йцукен#$%йцукен"不是有效的Ruby表达式。双引号内的#$用作插值。如果你指的是一个字符串'йцукен#$%йцукен',如果你想用一个空格代替像'#%$'这样的字符序列,而不仅仅是删除它们,那么,下面的方法是可行的。

代码语言:javascript
运行
复制
'йцукен#$%йцукен'.tr('#%$', " ").squeeze(" ")
# => "йцукен йцукен"
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16418222

复制
相关文章

相似问题

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