2 votes

Comment utiliser une expression régulière pour effectuer une sélection dans un tableau ?

J'ai un code qui demande à l'utilisateur de taper Cats ou Dogs, puis il va chercher dans un tableau tout ce qui contient le mot Cats ou Dogs, puis il les affiche tous.

print "Cats or Dogs? "
userinput = gets.chomp

lines = [["Cats are smarter than dogs"],["Dogs also like meat"], ["Cats are nice"]]

lines.each do |line|
  if line =~ /(.*?)#{userinput}(.*)/
    puts line
  end
end

Donc si je devais saisir des chats. je devrais obtenir deux phrases :

Cats are smarter than dogs
Cats are nice

Vous pouvez même entrer plus intelligemment et je vais obtenir

Cats are smarter than dogs

Je recherche strictement des moyens d'utiliser une expression régulière pour rechercher dans un tableau ou une chaîne de caractères et supprimer les lignes/phrases qui correspondent à l'expression.

Si quelqu'un se pose la question, le tableau de lignes provenait à l'origine d'un fichier et j'ai transformé chaque ligne en une partie du tableau.


EDITAR:

Wow, comme je suis arrivé loin dans le monde du codage.

print "Cats or Dogs? "
userinput = gets.chomp

lines = [["Cats are smarter than dogs"],["Dogs also like meat"], ["Cats are nice"]]

lines.each do |linesInside|
  linesInside.each do |line|
    if line =~ /(.*?)#{userinput}(.*)/
      puts line
    end
  end
end

Il m'a fallu littéralement 5 secondes pour résoudre ce qui m'a pris des siècles à abandonner à l'époque.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X