Ruby :: Aufgabe #41

1 Lösung Lösung öffentlich

Schleifen - Reguläre Ausdrücke - Eingabe auf 'fred' prüfen

Anfänger - Ruby von Gustl - 25.06.2013 um 15:24 Uhr
Schreiben Sie ein Programm, das jede Eingabezeile ausgibt, in der "fred" vorkommt. (Andere Eingabezeilen sollen nicht behandelt werden.) Das Muster soll auch Fred, Frederick, Alfred oder FrEd finden? (Egal ob die Buchstaben klein oder groß geschrieben werden.

Lösungen:

vote_ok
von pianoplayer (1330 Punkte) - 10.01.2014 um 21:09 Uhr
Quellcode ausblenden Ruby-Code
puts "Das Programm gibt jede Zeile aus, in der \"fred\" vorkommt."
puts "Geben Sie zunaechst einen mehrzeiligen Text ein!"
puts "Beenden Sie die Eingabe mit 3 mal Return!"
puts "Text: "

weiter = true
text = ""
countnewline = 0

while weiter do					                #Schleife für Texteingabe
  eingabe = gets						#Eingabe einer Textzeile
  countnewline +=1 if eingabe =="\n"	        #falls nur Zeilenumbruch, Erhöhung von countnewline
  text = text + eingabe					
  weiter = false if countnewline >=3                   #Abbruch, wenn countnewline = 3
end

text = text.chomp.chomp.chomp			#3 mal Zeilenumbruch entfernen
puts "Das sind die Zeilen mit \"fred\":"
puts text.scan(/^.*fred.*$/i)			        #Ausgabe der Zeilen mit "fred" mithilfe eines regulären Ausdrucks