在 Ruby 中转义字符串

2024-05-24

我想在某些 Ruby 中插入以下内容作为变量的值:

`~!@#$%^&*()_-+={}|[]\:";'<>?,./

用双引号将其引起来是行不通的,那么是否有一个很好的 escape_until_the_end 之类的东西可用?


不要使用多种方法 - 保持简单。

转义 #、反斜杠和双引号。

irb(main):001:0> foo = "`~!@\#$%^&*()_-+={}|[]\\:\";'<>?,./"
=> "`~!@\#$%^&*()_-+={}|[]\\:\";'<>?,./"

或者,如果您不想转义 #(双引号字符串中变量的替换字符),请改用单引号并转义:

irb(main):002:0> foo = '`~!@#$%^&*()_-+={}|[]\\:";\'<>?,./'
=> "`~!@\#$%^&*()_-+={}|[]\\:\";'<>?,./"

%q 对于许多不包含每个 ascii 标点符号的其他字符串来说非常有用。 :)

%q(text without parens)
%q{text without braces}
%Q[text without brackets with #{foo} substitution]

编辑:显然你也可以在 %q() 中成功地使用平衡括号,但我认为从维护的角度来看这有点危险,因为那里没有语义暗示你总是必须在字符串中平衡你的括号。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Ruby 中转义字符串 的相关文章

  • 有没有可以在 HTML 文档之间进行比较的 ruby​​ gem?

    事实证明 对两个不同的 html 文档进行比较是一个完全不同的问题 而不仅仅是对纯文本进行比较 例如 如果我在以下之间进行简单的 LCS 差异 Google and Google diff 结果不是 but a gt github com
  • 两个 ruby​​ 进程之间的通信可能/容易吗?

    如果我有一个 ruby 脚本Daemon顾名思义 它作为守护进程运行 监视系统的某些部分并能够执行需要身份验证的命令 例如更改权限 是否有一种简单的方法来拥有第二个 ruby 脚本 例如client 与该脚本通信并向其发送命令 询问信息 我
  • 如何使用 Ruby on Rails 3 检查 HTTP 请求的“Content-Length”字段?

    我正在使用 Ruby on Rails 3 在我的视图文件中我有以下代码 为了避免服务器过载 我会在服务器接收上传文件之前检查上传文件的大小 这是因为 按下表单的提交按钮 服务器会先完整接收文件 然后再检查文件 我知道一个HTTP 请求有标
  • 在 mac os Sierra 上,卡在“设置 CocoaPods 主存储库”上

    转移到 mac os sierra 后 我完全格式化了我的 mac 现在每次运行时我都面临安装 cocoapods 的问题sudo gem install cocoapods pre一切都安装得很好 当我尝试安装 Pod 时 终端堆栈打开S
  • 将 Rack::Deflater 插入机架中的哪个位置?

    我目前有以下内容 use Rack Rewrite use Rack Cache verbose gt true metastore gt memcached localhost 11211 rack cache meta entityst
  • 在 Rails 中呈现路由错误的 404 页面

    我试图在 Rails 中渲染集成的 404 页面作为例外 我尝试了这个 但仍然收到路由错误页面 posts controller rb def destroy if current user username post email post
  • 随机采样数组的唯一子集

    如果我有一个数组 a 1 2 3 如何随机选择数组的子集 以使每个子集的元素都是唯一的 也就是说 对于a可能的子集是 1 2 3 1 2 2 3 1 2 3 我无法生成所有可能的子集 因为 a 的实际大小非常大 因此有很多很多子集 目前 我
  • 回形针:样式取决于模型(has_many 多态图像)

    我已将模型设置为使用多态图像模型 这工作正常 但是我想知道是否可以更改每个模型的 styles 设置 找到了一些使用 STI 模型 Art has many images as gt imageable Image belongs to i
  • 从 Jekyll 插件向页面添加属性

    假设我想要一个包含如下内容的页面 h1 page comment count Comment s h1 for c in page comment list div strong c title strong br c content di
  • 一对一的DataMapper关联

    我对 DataMapper 非常陌生 我正在尝试为以下场景创建模型 我有许多用户 有用户名 密码等 他们也可以是玩家或裁判员或两者兼而有之 因此单表继承不是一个选项 基本模型是 class User include DataMapper R
  • 默认:Rails 资源路由的排除选项

    一个小问题 我正在将 Rails 用于 REST API 但由于它是 RESTful API 所以我并不真正需要 new or edit我的任何资源的路由 因为人们只会完全通过自动 JSON 请求而不是图形方式与此 API 交互 例如 不需
  • ruby 管道、IO 和 stderr 重定向

    我希望有一个 ruby 程序 一个 rake 任务 观察另一个 rake 任务的输出 输出写入器输出到 stderr 我想读一下这些行 我很难设置它 如果我有一个作家 stdout writer rb 不断打印一些东西 usr bin en
  • 通过 SSL 发布 UTF-8 时,HEROKU 上出现“EOFError:已到达文件结尾”

    我在 heroku 上遇到了奇怪的错误 为了重现它 我必须使用请求正文中的任何 UTF 8 字符制作大的 超过几 KB HTTPS POST 这是一个例子 require net https require uri Accutally I
  • 如何在 Ruby 中动态调用访问器方法[重复]

    这个问题在这里已经有答案了 不管这是否是好的做法 我如何在 Ruby 中动态调用访问器方法 这是一个示例类 class Test Class attr accessor a b end 我可以使用 Object send 方法来读取变量 i
  • Rails 递归地包含 javascripts 资源文件夹

    我了解如何将一个 JavaScript 文件添加到 Rails 资产管道中 只需添加 require filename 到 application js 但是如何在一个文件夹下包含多个 javascript 文件 vendor assets
  • rake db:migrate db:reset 和 db:schema:load 之间的区别

    和 之间的不同rake db migrate and rake db reset我很清楚 我不明白的是如何rake db schema load与前两者不同 只是为了确保我在同一页面上 rake db migrate 运行尚未运行的迁移 r
  • ArgumentError:Ruby 中的参数数量错误

    试图解决这个问题 class Person def initialize name name name end def greet other name puts Hi other name my name is name end end
  • Rails:Passenger Standalone 适合生产部署吗?

    问题标题几乎概括了这一点 我找不到任何好的资源来概述使用 Phusion Passenger Standalone 进行 Rails 应用程序部署的优点 缺点 它与运行 Passenger Nginx 或 Passenger Apache
  • Rails: :inverse_of 和关联扩展

    我有以下设置 class Player lt ActiveRecord Base has many cards inverse of gt player do def in hand find all by location hand en
  • 使用 Carrierwave 上传到 S3 时获取 mp3 持续时间

    我正在编写一个应用程序 它基本上是一个音乐平台 我想通过其元数据获取 mp3 的持续时间 并将其保存在表中 然后再将其上传到 S3 我使用载波和雾宝石的组合来上传 提取 mp3 元数据以保存到数据库的推荐方法是什么 有一个用于此类操作的 g

随机推荐

  • 图像处理方面的空间和时间表征有什么区别?

    我是学习图像处理的初学者 我对空间和时间表征的概念有点困惑 那么 对于空间表征来说 是不是像一张二维地图 包含了一些关于地图的统计信息呢 就时间特征而言 值是相对于时间的吗 这意味着什么以及我们为何关心 谢谢 当您在不同时间拍摄一系列图像时
  • 计算斐波那契数

    我收到了这个很好的非递归函数 用于计算斐波那契序列 因此 我编写了一些 C 代码 并能够验证 1474 以内的所有数字是否正确 当尝试计算 1475 及以上时就会出现问题 我的 C 数学技能无法胜任找出不同方法的任务 那么 有人有更好的方法
  • Java源代码生成框架[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一组 Java 5 源文件 其中包含旧式 Doclet 标签 注释和注释 基于此 我想为另一组 Java 类编写一个生成器 最好的方法
  • Play框架2.3.x服务器错误无法注册类

    我最近在服务器上上传了 Play 应用程序 问题是我可以通过命令运行应用程序激活器运行它编译并运行良好 当我尝试做的时候活化剂洁净阶段它也编译但之后目标 通用 阶段 bin name of myapp它会抛出一个错误 例如 Oops can
  • 如何在android 6.0中重复闹钟

    我正在使用setExactAndAllowWhileIdle 设置闹钟 但它只能工作一次 如何设置间隔 1 天的重复闹钟 API 级别 23 之前setInexactRepeating方法工作正常 当您的广播接收器事件正在执行时 为您的闹钟
  • 动态更改复选框不会触发onChange?

    注意 jQuery 不是一个选项 我想检测复选框状态的变化 但是当我这样做时 onChange 事件似乎没有触发 document getElementById myCheckBox addEventListener change func
  • 如何使用远程访问 API 获取 jenkins 的系统配置

    詹金斯提供了很好的远程访问API https wiki jenkins ci org display JENKINS Remote access API 可用于获取大量信息 例如作业和视图 我想知道是否或如何从远程访问 API 获取系统 全
  • Node.js console.log - 是否可以更新一行而不是创建新行?

    My node js应用程序有很多控制台日志 这对我来说很重要 这是一个相当大的应用程序 因此运行很长时间 我需要知道事情仍在进展 但我最终得到了数千行控制台日志 是否有可能做一个console update删除 替换控制台行而不是创建新行
  • Metallib:读取模块时出错:无效的位码签名

    我有以下 Filter metal 文件 include
  • 通过并行任务库限制运行的活动任务数量的最佳方法

    考虑一个队列持有lot需要处理的作业 队列的限制是一次只能获取 1 个作业 并且无法知道有多少个作业 这些作业需要 10 秒才能完成 并且需要大量等待 Web 服务的响应 因此不受 CPU 限制 如果我使用这样的东西 while true
  • 获取 ngrx 中的当前状态

    我正在尝试使用一个最小的示例来打印 ngrx 中的当前状态 interface AppState counter number export function Reducer state AppState counter 0 action
  • 无法使用 lld-link.exe 链接 C 运行时库 (libcmt.lib) (Windows)

    我正在使用 LLVM 编写一种语言 我想避免打包 clang 并简单地使用 LLVM 工具 例如 lld lld link 我一直在尝试调用printf来自我的简单 IR 代码的函数 testinput ll ModuleID Test2
  • 霍夫变换检测和删除线

    我想使用霍夫变换检测图像中的线条 但是我不想绘制线条 而是想删除原始图像中检测到的每条线条 image imread image jpg image im2bw image BW edge image canny imshow BW fig
  • jQuery.ready() 中应该包含什么内容,哪些内容应该在 jQuery.ready() 之外?

    jQuery ready 中应该包含哪些内容 哪些内容应该包含在 jQuery ready 之外 从性能的角度来看 我在某处读到将所有代码都包装在一个jQuery ready 这不是一个有效的方法 那么我的问题是 什么应该在里面 什么可以在
  • Java EE 企业应用程序:在部署/启动时执行一些操作[重复]

    这个问题在这里已经有答案了 我想在部署我的应用程序 具有业务逻辑 EJB 和客户端 Web 的企业应用程序 后立即执行某些操作 例如 我想让某个实体处于持久状态 或者以其他方式创建一个文件 我怎样才能做到这一点 Thanks 配置Serlv
  • Angular 4:在订阅中收到错误消息

    在服务中 有这样的代码 getUser id return this http get http id map res gt res json 在组件中 this myService getUser this id subscribe cu
  • HandleBars 检查 Each 中的索引是否可以被四整除

    对把手不太熟悉 但我在报告设置中使用它 并处理要打印的输出 我正在打印的文档每页应该有四份 所以我想做一个像if index 4 0 但我有点不确定该怎么做 我正在浏览一系列对象 each dataset 这是基本布局 以及我对每页四页报告
  • @Context 注入在 Je​​rsey ContainerRequestFilter 中不起作用(Dropwizard)

    Context 注入适用于类 但无法使其适用于对象 ContainerRequestFilter 中的 httpServletRequest 产生空指针 Dropwizard 版本 1 1 0 容器请求过滤器 public class Ap
  • 比较 2 个对象并检索具有不同值的字段列表

    给定一个具有 35 个字段的类和 2 个具有一定数量的不同字段值的对象 有没有一种聪明的方法来获取带有字段名称的列表 其中对象如下所示 e g obj1 Name aaa obj1 LastName bbb obj1 Address xcs
  • 在 Ruby 中转义字符串

    我想在某些 Ruby 中插入以下内容作为变量的值 lt gt 用双引号将其引起来是行不通的 那么是否有一个很好的 escape until the end 之类的东西可用 不要使用多种方法 保持简单 转义 反斜杠和双引号 irb main