给定以下字符串,如何将每行中的所有第一个字符大写:
"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! }
但没有用。
您可以使用正则表达式^[a-z]
或(?<=^|[\r\n])[a-z]
在每行中选择第一个非大写字符
让我们通过引入前导空格使其变得更棘手:
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"
"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)