Ruby 转义字符串中的一组特殊字符

标签 ruby elasticsearch

我有一组用于 Elasticsearch 的特殊字符,我需要使用 Ruby 对其进行转义。

它们是:+ - = && || > < ! ( ) { } [ ] ^ " ~ * ? : \ /

我怎样才能得到任何字符串来转义这些字符中的任何一个?

谢谢

最佳答案

所陈述的问题没有解决方案,因为“转义两个后续字符”没有意义。您希望收到什么结果“转义”,比如 &&

我相信,您想转义所有单个字符,以便 && 变成 \&\&||\|\|。这很容易。

to_escape = %w_+ - = & | > < ! ( ) { } [ ] ^ " ~ * ? : \ /_ # C"mon, SO parser
re = Regexp.union(to_escape)
print 'str (f) | a || b'.gsub(re) { |m| "\\#{m}" }
#⇒ str \(f\) \| a \|\| b

另一种可能性是使用 Regexp#escape ,但它会逃脱更多,比你可能需要的更多(例如空格。)

关于Ruby 转义字符串中的一组特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33429290/

相关文章:

ruby - Git 接收/上传包在推送时占用所有 RAM

ruby-on-rails - 如何在 Rails 中以 "mm/dd/yyyy"格式显示当前日期

symfony - 您可以在同一实体的不同索引中定义两个或多个类型吗?

search - 如何在elasticsearch中找到与字段和值匹配的所有文档?

elasticsearch - 使用Elastic Search Nest插入数据的性能问题

ruby-on-rails - 将字符串转换为 ActiveRecord 查询

ruby-on-rails - Rails 3. 使用 Formtastic 有条件地显示字段

ruby - .each 看似递归到二维数组的第二维

python-2.7 - 在Elasticsearch中为pdf编制索引时出现mapper_parsing_exception错误

elasticsearch - 当我关闭Elasticsearch主节点时,这种情况对吗?