只有在逗号之后才添加空格?

时间:2014-04-08 20:44:20

标签: ruby-on-rails ruby regex ruby-on-rails-3 ruby-on-rails-4

如果字符串中的逗号不存在,是否可以在逗号后添加空格。

示例:

word word,word,word,

最终会成为

word word, word, word,

ruby​​或rails中是否有函数可以执行此操作?

这将用于数十万个句子,所以它需要很快(性能很重要)。

4 个答案:

答案 0 :(得分:7)

使用否定前瞻来检查逗号后没有空格,然后用逗号和空格替换。

print 'word word,word,word,'.gsub(/,(?![ ])/, ', ')

答案 1 :(得分:4)

只需使用正则表达式替换","的所有实例,而不是", "后面的空格。

str = "word word,word,word,"

str = str.gsub(/,([^ ])/, ', \1') # "word word, word, word,"

答案 2 :(得分:0)

如果字符串不包含多个相邻的空格(或者不应包含这样的空格),则不需要正则表达式:

isFooSet

答案 3 :(得分:0)

添加缺少的空间:

 "word word,word,word,".gsub(/,(?=\w)/, ', ') # "word word, word, word,"

并在必要时删除最后一个不必要的逗号

"word word,word,word,".gsub(/,(?=\w)/, ', ').sub(/,\Z/, '') # "word word, word, word"