• [^] # Re: manque bang ?!

    Posté par . En réponse au message Expressions régulières. Évalué à 4.

    Deux principes :
    1. Comme tu veux les deux valeurs autour du =, il est plus logique de ne faire qu’une fois le boulot (une seule fois la même expression régulière).
    2. Quand on veut s’arrêter au premier caractère X, l’expression régulière qui précède X se base sur [^X]*, pas sur .*.

    Résultat :

    File.open('test.txt').each_line do |line|
    line.sub!(/[;#].*/, '') # enlever les commentaires de fin de ligne
    line.strip! # enlever les espaces en trop
    next if line.empty?
    if line =~ /\s*([^=\s]*)\s*=\s*([^\s]*)/
    name, value = 1,ドル 2ドル
    print ".#{name}. == .#{value}.\n"
    end
    end


    La variable value n’est jamais nil car 2ドル peut prendre la chaîne vide.