使用Scala代码在每个大写单词(减去第一个单词)之前添加空格

时间:2016-12-11 03:52:11

标签: regex string scala string-matching uppercase

我是Scala的新手...到目前为止,我真的很喜欢它。 :)

现在我正在玩Play Framework而且我很惊讶它是多么直接的开始。

嗯......手头的问题是我想把一个字符串作为下面一个更可读的字符串:

UsersGroupedByRegistrationMonthYear.csv

输出应为:

Users Grouped By Registration Month Year.csv

你能伸出援手吗?

3 个答案:

答案 0 :(得分:3)

不是正则表达式,而是一种非常直接的方法。

validates :estimated_price, presence: true,numericality: { only_integer: true }

答案 1 :(得分:2)

您可以使用此正则表达式搜索2个捕获组:

([a-z0-9])([A-Z])

并使用此模式替换:

$1 $2

RegEx Demo

<强>代码:

repl = input.replaceAll("([a-z0-9])([A-Z])", "$1 $2");

答案 2 :(得分:2)

另一种方法是使用带有正则表达式外观的String.split来通过大写字母标记你的字符串而不将它们扔掉,然后将标记组合回一个字符串中带有空格的字符串:

val in = "UsersGroupedByRegistrationMonthYear.csv"
val out = in.split("(?=[A-Z])").mkString(" ")

println("\"%s\"\nbecomes\n\"%s\"".format(in, out))

这会产生:

"UsersGroupedByRegistrationMonthYear.csv"
becomes
"Users Grouped By Registration Month Year.csv"