ruby-on-rails - 如何在ruby中的特殊字符前后添加空格?

标签 ruby-on-rails ruby regex

您好,我想在字符串中的特殊字符前后加一个空格

Frozen/Chilled/Ambient (Please state)

我想要这样的结果

Frozen / Chilled / Ambient ( Please state )

是否有可能在 ruby​​ 正则表达式中添加空格?

最佳答案

不需要使用复杂的正则表达式

你可以使用gsub的 block 语法

"Frozen/Chilled/Ambient (Please state)".gsub(/\W+/) {|w| " #{w} "}
#=> "Frozen / Chilled / Ambient  ( Please   state ) "

如果你想删除重复的空格,你可以使用squish

"Frozen/Chilled/Ambient (Please state)".gsub(/\W+/) {|w| " #{w} "}.squish
#=> "Frozen / Chilled / Ambient ( Please state )"

注意:

  • \W - 匹配任何非单词字符
  • squish - 删除周围的空格并将多个空格更改为 1

编辑:

根据评论,如果还可以使用 /[[:punct:]]/

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

关于ruby-on-rails - 如何在ruby中的特殊字符前后添加空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43736494/

相关文章:

ruby-on-rails - 文件 Assets 指纹未在 Rails 3.1 上正确更新

ruby-on-rails - 如何停止 Rails 中的守护进程服务器?

ruby - 如何在不使用 Ruby 和 WMI 进行轮询的情况下检测 USB 插入?

ruby-on-rails - has_many 嵌套表单,其中包含 has_one 嵌套表单

ruby-on-rails - 在 Rails 模型 JSON 输出中包含任意字段

sql - ActiveRecord 查找子资源的所有子资源

ruby-on-rails - 是否有任何工具可以监控 Rails 中 Puma 进程排队的性能?

python - Python : Convert named group to integer 中的正则表达式替换

c# - 正则表达式不是有效的类型或命名空间 C#

php - 如何在正则表达式中验证 BIGINT