答案我知道了,$1对应的是匹配成功的第一个括号的值
#7 楼 @Anleb #6 楼 @chentianwen “1”.methods.grep(/instance_(.*)_set){p $1} 你研究下我的这个代码你就明白我为什么这么问了
#6 楼 @chentianwen 元编程 47 页
#3 楼 @chentianwen 。。。。你也看看书,1 是第一个匹配
#1 楼 @haohaoren 请详解
我是下到本地,一个个 对照的看
是需要改进
我看,MD 买荷兰胜 那场 输了我 200 多
最近遇到一个需求必须要把字符串’20120514144424‘这个样子的转换为日期如: 2012-05-14 14:44:24 大家有没有好的方法啊。
如果 数字串类似的话,可以用正则做了,ruby 对字符串处理很 OK,
’‘’
s1=’20120514144424‘
date=s1.scan(/\d{2}/)
ary1=[]
ary2=[]
ary1<<year=date[0,2].join
ary1<< date[2]
ary1<< date[3]
year_month=ary1.join('-')
ary2<< date[4] ary2<< date[5] ary2<< date[6]
time=ary2.join(":")
result=year_month+“ ”+time
‘’‘
还有其他解,这是我脑子里的第一个解
对于正则,字符串常见的处理有 sacn、split、或者通过=~匹配到全局变量$1,如: ‘’‘ "aaaaa".split(/正则/) 这是按正则分割 #=>Array Type
"aaaa'.scan(/正则/) 按正则匹配, #=>Array Type
"aaaa"=~/正则/ 可以利用全局$1存储第一次的匹配 #=>返回第一次出现的索引
或者如果对于 一个字符串数组,你还可以使用 Array.grep(/正则/) 来匹配 #=>Array Type
你也可以变态的 匹配--->结果----> ’oneArray<<‘ '''
...........net 入门简单,精通很难,拖控件,兄弟开玩笑吧?把 简单的处理,你的控件处理 就是事件,都会 经过 服务器滴。。。
我已经 在 写 ruby 语法的 那些 不容易理解,很有趣的知识点笔记了,已经快50篇了,还结合了.net平台的c#的区别,希望能够继续完善下去,打包 PDF 分享给出来,主要从 双飞燕书 和 镐头书里 总结的。
‘’‘ a=[1,2,3,4,5,6,7,8,9] => [1, 2, 3, 4, 5, 6, 7, 8, 9] a.each do |i| a.delete(i) end => [2, 4, 6, 8]
’‘’ 我初学 ruby,我说下我的看法,首先咱们看下 each 和 map 的区别,each 后的代码块不管处理啥都会返回原数组,Map 将返回处理过的数组。
好,我们看下代码,第一个元素是 1,你操作了删除 1,那么这个时候 a=[2,3,4,5,6,7,8,9],each 内代码块以为 a 的索引应该到 a[1] 也就是第二个,那么就把 3 删掉,以此下去。
所以看到的结果是【2,4,6,8】,这个结果就是 现在 a 数组的原始数据了。
我是这么理解的。 另外要防止这样的情况,有很多办法啊,比如你自己定义方法然后携带 Block,最简单就是 复制一份 a 数组,然后从 a 开始 循环,删除 B 数组 ''' a=[1,2,3,4,5,6,7,8,9] b=a => [1, 2, 3, 4, 5, 6, 7, 8, 9] a.each do |i| b.delete(i) end '''
4L 的作法也对的