ruby-on-rails - 转义正则表达式中的特殊字符?

标签 ruby-on-rails ruby regex

我有一个表单,它将文本字段的内容发送到我的 Rails 应用程序,并且 我必须生成这个字符串的正则表达式。

我试过这样的:

regex = /#{params[:text]}/

一般情况下可以,但如果字符串中包含括号或特殊字符,则此方法无效。

我不希望 Rails 处理字符。它们应该自动转义。

我试过这样的:

/\Q#{params[:text]}\E/

但这也不起作用。

最佳答案

你应该使用 Regexp.escape

regex = /#{Regexp.escape(params[:text])}/
# in rails models/controllers with mongoid use:
# ::Regexp.escape(params[:text]) instead. ([more info][2])

关于ruby-on-rails - 转义正则表达式中的特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11989746/

相关文章:

javascript - 短语的正则表达式(不仅仅是单词)

python - 分解 HTML 以链接文本和目标

ruby-on-rails - Web 和移动 View 最佳实践相同的 Controller 或命名空间?

ruby - ActiveRecord::DangerousAttributeError:更新由 Active Record 定义

ruby - 在 OS X 上使用 Homebrew 还是 ruby​​ 版本管理器?

ruby - Ruby 中的 HTTPS URL 服务器证书

php - 单词与单词的分离(正则表达式和 PHP)

ruby-on-rails - Recaptcha::RecaptchaError in Articles#show 未指定站点 key

ruby-on-rails - 在 ruby​​ on rails 中使用相同的 2 个表的多个一对多关系?

ruby-on-rails - (React on Rails) 引擎 "node"与此模块不兼容。预期版本 "..."