【问题标题】:User Input + Ruby + Regex?用户输入 + Ruby + 正则表达式?
【发布时间】:2011-07-20 18:00:09
【问题描述】:

我想为用户提供一个可以输入文本的文本区域。稍后我会将该输入与不同的输入进行匹配,如果匹配则将其提取。

流程:

  • 用户在文本区域中输入带有返回的文本
  • 文本保存在数据库中的文本字段中

然后我用下面的来提取:

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

问题在于,新行或竖线之类的字符似乎 |正在打破它。我们想要匹配的输入可能如下所示:

XXXXXX

XXXXXX
XXXX & XXXXX
asdasd: 123312321 | dasasddsadasads

http://yahoo.com

建议?谢谢

【问题讨论】:

  • 简单的字符串替换不行吗?

标签: ruby regex ruby-on-rails-3


【解决方案1】:

您需要转义输入:http://www.ruby-doc.org/core/classes/Regexp.html

见方法escape

 Regexp.escape(your_input)

【讨论】:

  • 谢谢,但是当我执行 inputtext.split(regex_to_use).first 时如何转义?
  • 如果您正在为正则表达式输入用户/字符串输入,那么您对该正则表达式执行相同的操作。使用 Regex.escape 处理任何可能包含您不希望被正则表达式引擎解释为正则表达式特殊字符的字符串。
  • 我不认为这是问题所在。它似乎是一个 |输入中断它的管道。
  • 是的,这正是逃避它所避免的。管道是正则表达式中的特殊字符
  • @AnApprentice:由于您在这里发现了错误,您可以选择此作为正确答案并关闭此问题。
猜你喜欢
  • 1970-01-01
  • 2010-10-22
  • 1970-01-01
  • 2016-02-26
  • 1970-01-01
  • 1970-01-01
  • 2011-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多