微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查字符串在ruby中是否包含特殊字符

如何解决如何检查字符串在ruby中是否包含特殊字符

| 如何检查字符串是否包含红宝石中的特殊字符。如果我得到正则表达式也很好。 请告诉我     

解决方法

        
special = \"?<>\',?[]}{=-)(*&^%$#`~{}\"
regex = /[#{special.gsub(/./){|char| \"\\\\#{char}\"}}]/
然后,您可以使用正则表达式测试字符串是否包含特殊字符:
if some_string =~ regex
这看起来有点复杂:这是怎么回事
special.gsub(/./){|char| \"\\\\#{char}\"
是要把这个
\"?<>\',?[]}{=-)(*&^%$#`~{}\"
到这个:
\"\\\\?\\\\<\\\\>\\\\\'\\\\,\\\\?\\\\[\\\\]\\\\}\\\\{\\\\=\\\\-\\\\)\\\\(\\\\*\\\\&\\\\^\\\\%\\\\$\\\\#\\\\`\\\\~\\\\{\\\\}\"
每个特殊字符都以with5ѭ转义(本身在字符串中转义,即
\\\\
而不是
\\
)。然后将其用于构建这样的正则表达式:
/[<every character in special,escaped>]/
    ,        使用
str.include?
。 如果
str
包含给定的字符串或字符,则返回
true
\"hello\".include? \"lo\"   #=> true
\"hello\".include? \"ol\"   #=> false
\"hello\".include? ?h     #=> true
    ,        
\"foobar\".include?(\'a\')
# => true
    ,        为什么不使用
[:alnum:]
posix的反函数。 这里的“ 14”包括所有“ 16”,“ 17”,“ 18”。 在这里阅读更多。     ,        在Ruby 2.0.0及更高版本中该命令如何?
def check_for_a_special_charachter(string)   
  /\\W/ === string
end
因此,具有:
!\"He@llo\"[/\\W/].nil?  => True

!\"Hello\"[/\\W/].nil?   => False
    ,        
\"Hel@lo\".index( /[^[:alnum:]]/ )
如果您没有任何特殊性格,这将返回
nil
,因此我认为是最简便的方法。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。