我有一个表单,它将文本字段的内容发送到我的 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/