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
/

できるように、1 つのパス レベルだけが有効な文字列としてカウントされる必要があります。私は試していました:

\/(.*)

...しかし、これは /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

UPDATE(@CasimiretHippolyteコメントによる)

  def valid?(s)
    s.rindex('/') == 0
  end
  valid?('/this-is-not/fafa/fafa') # => false
  valid?('/balbabla') # => true
于 2013-07-10T03:24:38.280 に答える