2014-03-25 22 views
1

我有这种类型的字符串如何区分captitalize和non captialize单词?

str = "\n\t\t\t\t\t\t\t\tRemovable neck strapBelt loop\n        \n        \n        \n\t\t\t\t\t\t\" 

要转换成

Removable neck strap Belt loop 

通知如何strapBelt分离。

到目前为止,我已经做到了这一点

str.gsub(/\n|\t/,'').strip 

这给了我

Removable neck strapBelt loop 

,但未能strapBelt之间的分裂。

回答

2
str.gsub(/([a-z])([A-Z])/, '\1 \2').strip 
2

使用这一个:

str = str.gsub(/(?<=[a-z])([A-Z])/, ' \\1') 

这检查任何大写字母[A-Z]是否恰好是一个较小的信[a-z]与否后(使用正回顾后(?<=[a-z]))。如果是,则将其替换为空格和大写字(在捕获组中为\\1)本身。