Je voudrais patcher certaines données de texte extraites de pages Web. échantillon:Comment faire une référence arrière dans l'expression rationnelle Ruby (regex) avec gsub quand j'utilise le groupement?
t="First sentence. Second sentence.Third sentence."
Il n'y a pas d'espace après le point à la fin de la deuxième phrase. Cela me signe que la 3ème phrase était dans une ligne séparée (après une étiquette br) dans le document original. Je souhaite utiliser cette expression rationnelle pour insérer le caractère "\ n" aux endroits appropriés et corriger mon texte. Mon regex:
t2=t.gsub(/([.\!?])([A-Z1-9])/,$1+"\n"+$2)
Mais malheureusement, il ne fonctionne pas: « NoMethodError: méthode non définie + » pour nil: NilClass » Comment puis-je bien aux référence arrière groupes appariés? C'était si facile dans Microsoft Word, je devais juste utiliser les symboles \ 1 et \ 2.
Les globaux numérotés ('$ 1',' $ 2', ...) ne sont pas définis lorsque le second argument est évalué, ils sont définis par 'gsub' avant de céder au bloc. D'où le conseil de sawa sur le moment d'utiliser ''\' 'et quand utiliser' $ 1'. –