擦洗文本變得非常棘手。你要注意的一件事是字界。因空間分割會讓許多嘟嘟的單詞由於念頭而得以通過。比較下面示例代碼的前兩個結果。
接下來,將分割文本重新組裝到預期形式中,使用punction,spacing等等,將變得非常具有挑戰性。您可能要考慮使用正則表達式來預先設定與用戶註釋一樣小的內容。看到第三個結果。
如果你將此作爲一種學習練習,那很好,但如果應用程序對敏感的地方很容易受到失敗煽風點火的困擾,那麼你可能需要尋找一個經過良好測試的庫。
#!/usr/bin/env ruby
# Bleeper
scifi_curses = ['friggin', 'gorram', 'fracking', 'dork']
text = "Why splitting spaces won't catch all the friggin bleeps ya gorram, fracking dork."
words = text.split(" ")
words.each do |this_word|
puts "bleep #{this_word}" if scifi_curses.include?(this_word)
end
puts
better_words = text.split(/\b/)
better_words.each do |this_word|
puts "bleep #{this_word}" if scifi_curses.include?(this_word)
end
puts
bleeped_text = text # keep copy of original if needed
scifi_curses.each do |this_curse|
bleeped_text.gsub!(this_curse, '[bleep]')
end
puts bleeped_text
你應該得到這些結果:
bleep friggin
bleep fracking
bleep friggin
bleep gorram
bleep fracking
bleep dork
Why splitting spaces won't catch all the [bleep] bleeps ya [bleep], [bleep] [bleep].