ruby - 在 Ruby 中评估字符串中的正则表达式

标签 ruby regex string

我有一个简单的要求。我从用户那里读取了一个字符串(track 或 trAck)。我想要一个使用 Regexp 概念的逻辑,它将根据 正则表达式(在字符串中)检查此 user input :

 def test_regex
      string = "tr[Aa]ck"
      string1 = /#{Regexp.quote(string)}/ #tried something here
      user_input = "track" #or "trAck"
      if string1 == user_input
        puts "REGEX works"
      else
        puts "DIDN work"
      end
    end
 end

我知道我盲目地写了一些代码。需要正确的方向!

最佳答案

删除Regexp.quote,或使用Regexp::new . (如果您使用 Regexp.quote,生成的模式将匹配 tr[Aa]ck 字面意思)

string1 = /#{string}/
# OR
# string1 = Regexp.new(string)

并使用 =~ 运算符代替 == 来将正则表达式与字符串匹配。

if string1 =~ user_input

def test_regex
  string = "tr[Aa]ck"
  string1 = /#{string}/
  user_input = "track" #or "trAck"
  if string1 =~ user_input
    puts "REGEX works"
  else
    puts "DIDN work"
  end
end

关于ruby - 在 Ruby 中评估字符串中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25505131/

相关文章:

ruby-on-rails - 找不到 id=show 的帖子?

c++ - 正则表达式匹配可选数字

python - Pandas 单词中重复的元音和辅音

c++ - 子字符串丢失字符串输入

ruby-on-rails - 为什么这段 Ruby 代码无法写入日志文件?

ruby-on-rails - Ruby 中的内存管理

ruby-on-rails - 是否可以在 Heroku 控制台中使用 Hirb?

用于查找 CSV 数字的 MySQL 正则表达式

c - 在 C 字符串上放置一个掩码

swift - 在字符串显示中强制包含字符