メソッド 'valid_string?'を書きます。文字列を受け入れる。大括弧、かっこ、中括弧が正しく閉じると、真を返します。それ以外の場合はfalseを返します。Rubyで閉じ括弧、カッコまたは括弧の妥当性をチェックする方法
valid_string?("[ ]") # returns true
valid_string?("[ ") # returns false
valid_string?("[ (text) {} ]") # returns true
valid_string?("[ (text {) } ]") # returns false
私のコードは:すべてのためにfalseを返しています。個々のケースに明示的なブーリアンを使ってみました{} || ()||など、動作しませんでした。どちらも、すべてに対して真か偽かを返します。それは私の運転免許証ですか?
def valid_string?(str)
if str == ("\[\s+]")
true
else
false
end
end
更新された解決策:---------------------------------------- -------- はい! #matchは間違いなく改善されました!テストコードの私の最後の行は真であると評価されていますが。それが偽であるべきとき。 。 。
def valid_string?(str)
if str.match "(\\[.+\\])" || "|(\\(\\))" || "|({})"
return true
else
return false
end
end
puts valid_string?("[ ]") # returns true
puts valid_string?("[ ") # returns false
puts valid_string?("[ (text) {} ]") # returns true
puts valid_string?("[ (text {) } ]") # returns false
'=='は 'regex == regex'を比較するために使用され、' regex == string'は比較されません。 '〜='や 'match'を使いたいとします。 [docs](http://www.ruby-doc.org/core-2.0.0/Regexp.html#method-i-3D-3D) –
正規表現を使って注文を確認することはできませんあなたはデータのLIFO構造を使用しなければなりません。 – rullof
これは、正規表現で実行するチェックの種類ではありません。 –