Burada bir süre aradım ve ihtiyacım olanı tam olarak bulamadım. Ruby (1.9) öğreniyorum ve bir metin dosyasıyla temel bir şeyler yapmaya çalışıyorum. RegEx'in harfleri SADECE satırın başında olmayan harfleri ve boşlukları kaldırmak için kullanmaya çalışıyorum, belirteçleri arasındaki boşlukları görmezden geliyorum (dosyadaki kelimeleri saymaya çalışıyorum, dolayısıyla sözcüklerin arasındaki boşlukları istediğimde).Ruby kullanarak özel karakterleri silme, ancak boşluk kullanmayın
Ör:
555 r6ub6y i7s e7a0sy... w1o2w4.
değiştirmek için için:
şimdiye kadarruby rubyfile.rb < test.txt
sınamak için komut satırını kullanarak var ne
ruby is easy... wow.
:
$stdin.each do |line|
line.chomp!.downcase!
line.gsub!(/[^a-zA-Z]/, "") #this takes away my spaces!
puts line
end
Hiçbir değişiklik yapılmazsa 'chomp!' 'Nil' döndüreceğini unutmayın. Bu durumda beklenmedik bir davranış olan – JKillian
@JKillian "beklenmedik" veya "istenmeyen" bir durumdur. Değişiklikler uygulanmadığında, dizeler için patlama (!) Yöntemleri genellikle geri döner. Bang, adlandırılan yöntem gibi daha tehlikeli bir mutasyona işaret eder, bazen alıcıyı değiştirir veya bir şekilde patlama olmayan yöntemden farklı sonuçlar üretir. Ben onu görüyorum! Tehlike demek, farklı bir şey bekler. – engineersmnky
@engineersmnky Evet, bang metodlarına aşinayım ve dizilerdeki birçok kişinin "chomp" ile aynı şekilde davrandığı konusunda kesinlikle haklısınız. Ben sadece kişisel olarak, normal versiyonlar gibi zincirlenemediklerini garip buluyorum ... – JKillian