Ich möchte einige Textdaten patchen, die von Webseiten extrahiert werden. Beispiel:Wie referenziere ich in regulärem Ruby-Ausdruck (regex) mit gsub, wenn ich Gruppierung verwende?
t="First sentence. Second sentence.Third sentence."
Es gibt keinen Raum nach dem Punkt am Ende des zweiten Satzes. Dies bedeutet, dass der 3. Satz in einer separaten Zeile (nach einem br-Tag) im Originaldokument steht.
Ich möchte diese Regexp verwenden, um "\ n" Zeichen an den richtigen Stellen einzufügen und meinen Text zu patchen. Meine regex:
t2=t.gsub(/([.\!?])([A-Z1-9])/,$1+"\n"+$2)
Aber leider funktioniert es nicht: „NoMethodError: nicht definierte Methode` +‘für Null: NilClass“ Wie kann ich zu den angepassten Gruppen Rückreferenzierung richtig? Es war so einfach in Microsoft Word, ich musste einfach \ 1 und \ 2 Symbole verwenden.
Die nummerierten Globals ('$ 1',' $ 2', ...) werden nicht gesetzt, wenn das zweite Argument ausgewertet wird, sie werden mit 'gsub' gesetzt, bevor es dem Block nachgibt. Daher sawas Ratschlag, wann man '' \ 1'' und wann '$ 1' verwenden soll. –