2011-03-22 2 views
7

사용자에게 텍스트를 입력 할 수있는 텍스트 영역을 제공하고 싶습니다. 나중에 다른 입력에 대해 해당 입력을 일치시키고 일치하는 경우 추출합니다.사용자 입력 + Ruby + 정규식?

흐름 :

:

  • 사용자 내가 추출하기 위해 다음을 사용
  • 텍스트

그런 다음 텍스트 필드에 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) .first를 할 때 어떻게 피할 수 있습니까? – AnApprentice

+0

당신은 정규식에 대한 사용자/문자열 입력을받는다면 그 정규식에 똑같은 일을합니다. regex.escape 정규식 엔진에 의해 그렇게 해석되고 싶지 않은 정규식 특수 문자가있을 수있는 문자열을 사용하십시오. –

+0

그래, 어떻게? thx – AnApprentice