您好,我想在字符串中的特殊字符前后加一个空格
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/