仅在与ruby完全匹配时捕获字符串

时间:2013-07-10 03:19:14

标签: ruby regex url

我正在尝试仅在匹配完全匹配时捕获字符串。

I.e.valid:

/this-is-an-exact-matc
/this-is-also-an-exact-match
/this-is-other-exact-match?d=1
/balbabla

无效:

/this-is-not/fafa/fafa
/dede/ddd/dfsfd
/

因为您只能将一个路径级别视为有效字符串。 我在尝试:

\/(.*)

...但这也证实了像/ bbalbalb / blablba

这样的真实内容

由于

2 个答案:

答案 0 :(得分:2)

也许这就是:

string =~ %r{\A/[^/]+\z}

要获得您在评论中提出的问题,请尝试以下方法:

string[%r{(?<=\A/)(?=[^/]+\z)([^?]+)}]

答案 1 :(得分:0)

  def valid?(s)
    s.count('/') == 1
  end
  valid?('/this-is-not/fafa/fafa') # => false
  valid?('/balbabla') # => true

更新(根据@CasimiretHippolyte评论)

  def valid?(s)
    s.rindex('/') == 0
  end
  valid?('/this-is-not/fafa/fafa') # => false
  valid?('/balbabla') # => true