我有一些奇怪的字符出现在字符串中,这些字符正在破坏脚本。从put badstring
到console我可以看出它们是"\0\0\0\0"
。
我想测试一下,这样我就可以忽略它们…但是怎么做呢?
我想这就是blank?
和empty?
的目的????:
> badstring = "\0"
=> "\u0000"
> badstring.blank?
NoMethodError: undefined method `blank?' for "\u0000":String
from (irb):97
from /Users/meltemi/.rvm/rubies/ruby-2.0.0-p195/bin/irb:16:in `<main>'
> badstring.empty?
=> false
> badstring.nil?
=> false
编辑:试图在IRB中重新创建,但遇到问题:
> test1 = "\0\0\0\0"
=> "\u0000\u0000\u0000\u0000"
> test2 = '\0\0\0\0'
=> "\\0\\0\\0\\0"
我想要的是一个
"\0\0\0\0"
字符串,这样我就可以找到测试if mystring == "\0\0\0\0"
或类似的东西的方法。 最佳答案
首先blank?
是一个rails助手。请改为:
badstring =~ /\x00/
如果返回整数,则给定字符串包含
"\0"
,如果返回nil
,则给定字符串不包含"\0"
。