考虑下面的字符串,我该如何利用所有在每行的第一个字符的:什么是正则表达式来利用新行?
"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! }
,但没有奏效。
考虑下面的字符串,我该如何利用所有在每行的第一个字符的:什么是正则表达式来利用新行?
"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)
也许'(<=^| [\ r \ n] {1,2})[az]'? (我不确定) – HamZa 2013-05-11 13:19:18
@HamZaDzCyberDeV在** lookbehind **中,像'*','+','{n}这样的量词是不被Ruby支持的 – Anirudha 2013-05-11 13:25:10
啊谢谢指出:) – HamZa 2013-05-11 13:34:07