ruby - 为什么这个 ruby​​ 代码不比较正则表达式?

标签 ruby

if string == /\s{1,}/ or string == /\n{1,}/
  puts "emptiness..."
end

最佳答案

要针对 Regex 测试 String,您可以执行以下五项操作中的任何一项:

1:使用String#match:

' '.match /\s{1,}/    # => #<MatchData:0x118ca58>
'f'.match /\s{1,}/    # => nil

2:使用Regex#match:

/\s{1,}/.match ' '    # => <MatchData:0x11857e4>
/\s{1,}/.match 'f'    # => nil

3:使用String#=~:

' ' =~ /\s{1,}/       # => 0
'f' =~ /\s{1,}/       # => nil

4:使用Regex#=~:

/\s{1,}/ =~ ' '       # => 0
/\s{1,}/ =~ 'f'       # => nil

5:使用 Regex#===(这是在 case 语句中使用的):

/\s{1,}/ === ' '      # => true
/\s{1,}/ === 'f'      # => false

注意:String#=== 不会做你想做的事:

' ' === /\s{1,}/      # => false
'f' === /\s{1,}/      # => false

关于ruby - 为什么这个 ruby​​ 代码不比较正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2353931/

相关文章:

ruby - 我如何在 Ruby 中延迟评估尚未声明的类?

ruby - XPath 只选择子元素(不是空白文本节点)

ruby - Rails gem 命名约定

ruby - 添加 gem "tesseract-ocr"Rails 4 后尝试运行服务器时出错

ruby - 使用 DOM 检查器查找按钮的 ID

ruby - 扩展 Ruby Mechanize 脚本以使用代理

ruby-on-rails - 向表 Rails 3 添加列后出现未知属性错误

Ruby 在看跌期权中不会转义 oct

ruby - 如何模式匹配字符串中的字符串,然后将其提取到变量中

ruby-on-rails - 如何将一个类放在链接内的跨度中?