2

给定以下字符串,如何将每行中的所有第一个字符大写:

"New line\r\n\r\nalso a new line\r\n\r\n\r\n\r\n\r\nanother new line"

我尝试了类似的东西,gsub(/\\n\w/){ $&.capitalize! }但没有用。

4

3 回答 3

3

您可以使用正则表达式^[a-z](?<=^|[\r\n])[a-z]在每行中选择第一个非大写字符

于 2013-05-11T13:10:56.347 回答
3

让我们通过引入前导空格使其变得更棘手:

str = "New line\r\n\r\n also a new line\r\n\r\n\r\n\r\n\r\nanother new line"
str.gsub(/^\s*[a-z]/i){|x| x.upcase}
#=> "New line\r\n\r\n Also a new line\r\n\r\n\r\n\r\n\r\nAnother new line"
于 2013-05-11T13:21:00.277 回答
2
"New line\r\n\r\n also a new line\r\n\r\n\r\n\r\n\r\nanother new line"
.gsub(/^\W*./, &:upcase)
于 2013-05-11T13:31:00.073 回答