2011-03-22 17 views
7

मैं उपयोगकर्ताओं को एक टेक्स्ट क्षेत्र देना चाहता हूं जहां वे टेक्स्ट दर्ज कर सकते हैं। बाद में मैं उस इनपुट को एक अलग इनपुट के खिलाफ मेल करूंगा और मिलान किए जाने पर इसे निकाल दूंगा।उपयोगकर्ता इनपुट + रूबी + रेगेक्स?

प्रवाह:

:

  • उपयोगकर्ता
  • पाठ

फिर एक पाठ क्षेत्र में DB में सहेजा जाता है एक पाठ क्षेत्र मैं निकालने के लिए निम्न का उपयोग कर में रिटर्न के साथ टेक्स्ट दर्ज

text_reply = text_reply.sub(/#{user.text_to_extract}/m, '').strip 

समस्या यह है कि ऐसा लगता है कि नई लाइनों या पाइप जैसे वर्ण | इसे तोड़ रहे हैं इनपुट के रूप में हम इसके खिलाफ मिलान करना चाहते हैं:

XXXXXX 

XXXXXX 
XXXX & XXXXX 
asdasd: 123312321 | dasasddsadasads 

http://yahoo.com 

सुझाव? http://www.ruby-doc.org/core/classes/Regexp.html

विधि escape देखें: Thansk

+0

एक साधारण स्ट्रिंग प्रतिस्थापन नहीं करेगा? – Dogbert

उत्तर

13

आप इनपुट से बचने के लिए की जरूरत है।

Regexp.escape(your_input) 
+0

धन्यवाद लेकिन जब मैं inputtext.split (regex_to_use) करता हूं तो मैं कैसे बचूं? सबसे पहले? – AnApprentice

+0

यदि आप रेगेक्स के लिए उपयोगकर्ता/स्ट्रिंग इनपुट ले रहे हैं तो आप उसी रेगेक्स पर भी वही काम करते हैं। किसी भी स्ट्रिंग के लिए Regex.escape का उपयोग करें जिसमें रेगेक्स विशेष वर्ण हो सकते हैं जिन्हें आप रेगेक्स इंजन द्वारा व्याख्या नहीं करना चाहते हैं। –

+0

सही लेकिन कैसे? thx – AnApprentice

संबंधित मुद्दे