0

我仅在匹配准确时才尝试捕获字符串。

有效:

/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 这样的真实情况

谢谢

4

2 回答 2

2

也许是这样:

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

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

string[%r{(?<=\A/)(?=[^/]+\z)([^?]+)}]
于 2013-07-10T03:25:51.597 回答
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
于 2013-07-10T03:24:38.280 回答