嗨,我想在字符串中的特殊字符前后加一个空格
冷冻/冷藏/环境(请说明)
我想要这样的结果
冷冻/冷藏/环境(请说明)
有没有可能在ruby regexp中添加空间?

最佳答案

不需要使用复杂的正则表达式
您可以使用gsub的块语法

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

10-08 11:22