嗨,我想在字符串中的特殊字符前后加一个空格
冷冻/冷藏/环境(请说明)
我想要这样的结果
冷冻/冷藏/环境(请说明)
有没有可能在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:]] => [!"\#$%&'()*+,\-./:;<=>?@\[\\\]^_`{|}~]