2017-06-09 6 views
-1

ルビー:- どのように私は、この文字列の末尾に疑問符と感嘆符を取り除くことができます

str = "Hello!!!!! World???" 

最終的な結果になるように、 :

str = "Hello! World?" 

私は、文字列の最初の"?""!"をしたいです。

+1

これらを削除するコードを書くことで削除できます。あなたが問題を抱えているコードは何ですか?あなたのコードにはどんな問題がありますか?エラーメッセージが表示されますか?エラーメッセージとは何ですか?結果はあなたが期待している結果を得ていないのですか?あなたはどんな結果を期待していますか、そしてなぜ、あなたはどのような結果を得ていますか、そしてその二つの違いは何ですか?あなたが観察している行動は、望ましい行動ではありませんか?望ましい行動とは何か、なぜ行動が観察され、どのように違うのですか? [mcve]を提供してください。 –

+1

これらのルール、コーナーケース、特殊ケース、エッジケースからの例外を含む、すべてのルールを含む、実行したいことを正確に指定できますか?通常のケースと例外、コーナーケース、特殊ケース、エッジケースの両方で、予想されることを示すサンプル入力と出力を提供できますか?たとえば、「こんにちは!」の結果はどうでしょうか?世界?!? ''?または '' Hello ?? World ?? ''のために? –

+0

私は最初の "?"と "!"文字列に表示される – gcr828

答えて

2

あなたは、おそらく単純な正規表現でそれに取り組むことができます。

while (line = DATA.gets) 
    puts line.chomp.gsub(/([\?\!])+/, '\1') 
end 

__END__ 
Hello!! World?? 
Hello!?!? 
Hello!!!!!! 

得られます

Hello! World? 
Hello? 
Hello! 

をちょうどここでは便宜上DATAを使用して、これはあなたが持つかもしれない任意の文字列で動作します。

+0

正規表現の '!'はエスケープする必要がありますか? –

+2

@ sagarpandya82、いいえ、疑問符もありません。 –

+0

@ sagarpandya82多分そうではありませんが、私は豊富な注意からそのようなことをする傾向があります。 – tadman

5
"Hello!!!!! World????".squeeze('!?') 
    #=> "Hello! World?" 

String#squeezeを参照してください。文字列を変更するにはsqueeze!を使用してください。

+1

これはすてきな解決策です。 – tadman

関連する問題