2011-03-22 26 views
7

Kullanıcılara metin girebilecekleri bir metin alanı vermek istiyorum. Daha sonra bu girişi farklı bir girişle eşleştireceğim ve eşleştiğinde ayıklayacağım.Kullanıcı Girişi + Ruby + Regex?

Akış:

:

  • Kullanıcı ı ayıklamak için aşağıdaki kullanın
  • Metin

Sonra bir metin alanında db kaydedilen bir metin alanına döner ile metin girdiğinde

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

Sorun şu ki, yeni çizgiler veya borular gibi karakterler görünüyor. onu kırıyorlar. Karşılaşmak istediğimiz girdi şu şekilde görünebilir:

XXXXXX 

XXXXXX 
XXXX & XXXXX 
asdasd: 123312321 | dasasddsadasads 

http://yahoo.com 

Öneriler?

http://www.ruby-doc.org/core/classes/Regexp.html yöntemi escape bakınız: Thansk

+0

Basit bir dize yerine koyma yapmaz mı? – Dogbert

cevap

13

Girilen kaçmak gerekir.

Regexp.escape(your_input) 
+0

Teşekkürler ama ben inputtext.split (regex_to_use) .first yaptığımda nasıl çıkabilirim? – AnApprentice

+0

İfade için kullanıcı/dize girdisi alıyorsanız, bu ifadeye aynı şeyi yaparsınız. Regex motoru tarafından yorumlanmasını istemediğiniz regex özel karakterlere sahip olabilecek herhangi bir dize için Regex.escape kullanın. –

+0

Doğru ama nasıl? thx – AnApprentice

İlgili konular