split(%r{\s*})
将每个字母忽略空格中:`分裂的含义(%R { S *})`
"hi mom".split(%r{\s*}) # => ["h", "i", "m", "o", "m"]
为什么能%r{\s*}
这种方式工作?
split(%r{\s*})
将每个字母忽略空格中:`分裂的含义(%R { S *})`
"hi mom".split(%r{\s*}) # => ["h", "i", "m", "o", "m"]
为什么能%r{\s*}
这种方式工作?
%r{...}
(或%r[...]
,或%r#....#
,或者%rX...X
...你的要点)相当于/.../
,一个RegExp文字。在一个正则表达式中,\s
是一个空格,并且*
是前一个标记的0个或更多个:表达式一起表示“在每个点处将字符串拆分为零或多个空格”。在字符串的每个字符之间(除了空格之外,它们被认为是可识别的分隔符)之间有零个或多个空格。
%r{\s*}
匹配一个任意的零宽度位置或一个或多个空格,这些空格被排除在分割结果之外。
执行'%r {\ s *}'返回'/ \ s * /'。这是否更清楚?这是Ruby的[百分比字符串]之一(http://ruby-doc.org/core-2.3.0/doc/syntax/literals_rdoc.html)。 (搜索“百分比字符串”。) –
目前还不清楚你的问题是什么。什么使你对这个代码的工作方式感到困惑? –
http://meta.stackoverflow.com/questions/253894/how-to-handle-explain-how-this-code-dump-works-questions/253896#comment17104_253896 –