文字列内のアポストロフィを削除しようとしています。下のコードを使用して、アポストロフィとスペースを削除しました。だれでもアポストロフィを削除するだけですので修正できますか?gsub!クリーンな文字列、アポストロフィを削除する
def clean_uniname(text)
return text.gsub!(/\s|"|'/, '')
end
文字列内のアポストロフィを削除しようとしています。下のコードを使用して、アポストロフィとスペースを削除しました。だれでもアポストロフィを削除するだけですので修正できますか?gsub!クリーンな文字列、アポストロフィを削除する
def clean_uniname(text)
return text.gsub!(/\s|"|'/, '')
end
\s
を "空白文字" を意味し、"
は引用符を表します。それらをあなたの正規表現に入れたくなければ、それらを引っ張りなさい。デバッグの場合は、Rubularを試してみてください。
これはあなたのコードがどうあるべき意味:
def clean_uniname(text)
text.gsub!(/\s|"|'/, '')
text
end
それは何も変更はそれほど行われていない場合は、戻り値を使用している場合gsub!
リターンがnil
text
の明示的なリターンがここで必要とされていることは注目に値します。
これはトリックを行う必要があります。
def clean_uniname(text)
text.gsub!("'", '')
end
これを試してみましたが、私はこのエラーを受け取りました: testing.rb:41: 'block in process_unis ':未定義メソッド' []' for nil:NilClass(NoMethodError) – Akamaru
このエラーは、次のようになります:2.2.1:001> string> "私は文字列" => "私は文字列です" 2.2.1:002> string.gsub!( "'"、' ') = > "Im a string" 2.2.1:003> さらにコードを投稿すると、他の問題を解決するのに役立つかもしれませんが、私の答えは問題を解決して以来、あなたは尋ねました。 –
アポストロフィとシングルクォーテーションは同じシンボルを使用しますが、意味は異なります。あなたの文字列が ''私は知らない ''と言ったとしよう。彼女は「私は知らない」と言っていますか(「アポストロフィだけを取り除く」)、「私は知らない」と言っていますか?それが前者の場合、最後の文字(「bro '」や「Chris」のような「s」で終わる単語のための所有形式)の後にアポストロフィを持つ単語がいくつかあり、複数のアポストロフィ(「できません」)。 –