मैं वेब पेजों से निकाले गए कुछ टेक्स्ट डेटा को पैच करना चाहता हूं। नमूना:जब मैं समूह का उपयोग करता हूं तो gsub के साथ रूबी नियमित अभिव्यक्ति (regex) में बैकरेफर कैसे करें?
t="First sentence. Second sentence.Third sentence."
दूसरे वाक्य के अंत में बिंदु के बाद कोई जगह नहीं है। यह मुझे साइन इन करता है कि मूल वाक्य में तीसरी वाक्य एक अलग पंक्ति (एक ब्र टैग के बाद) में थी।
मैं इस regexp का उपयोग "\ n" वर्ण को उचित स्थानों में डालने और अपने पाठ को पैच करने के लिए करना चाहता हूं। मेरे regex:
t2=t.gsub(/([.\!?])([A-Z1-9])/,$1+"\n"+$2)
लेकिन दुर्भाग्य से यह काम नहीं करता: "NoMethodError: अपरिभाषित विधि` + 'के बराबर के लिए: NilClass " मैं कैसे ठीक से मिलान किया समूहों के लिए backreference कर सकते हैं? माइक्रोसॉफ्ट वर्ड में यह इतना आसान था, मुझे बस \ 1 और \ 2 प्रतीकों का उपयोग करना पड़ा।
क्रमांकित ग्लोबल्स ('$ 1',' $ 2', ...) दूसरे तर्क का मूल्यांकन होने पर सेट नहीं होते हैं, वे ब्लॉक पर पहुंचने से पहले 'gsub' द्वारा सेट किए जाते हैं। इसलिए '' 1'' का उपयोग कब और '$ 1' का उपयोग कब करें' पर सोया की सलाह। –