yakczh 发表于 2012-02-14 17:30

匹配第二个数字和城市

本帖最后由 yakczh 于 2012-02-14 17:43 编辑

文件内容是这样

LOK = '西城';
LOK = '崇文';
LOK = '宣武';
LOK = '朝阳';
LOK = '丰台';
LOK = '石景山'; open(file).eachdo |line|
    puts line
   

   
   line =~ /LOK\[\d+\]\[(\d+)\] = \'(.*?)\';/
   code=$1,city=$2
    print      code

end为什么code对应\d+ 为什么输出结果是 ["6328", "海西"]

Sevk 发表于 2012-02-14 21:09

gr33n 发表于 2012-02-15 08:07


code = $1, city = $2
=>
city = $2
code = $1, city
code = $1, $2

code = $1
city = $2

or

code = $1; city = $2   OK
code, city = $1, $2   OK

yakczh 发表于 2012-02-15 09:02

本帖最后由 yakczh 于 2012-02-15 09:04 编辑

   code=$1
   city=$2分开行写就可以 ,我还以为是正则写错了呢

Sevk 发表于 2012-02-15 09:38

bugbugbug3 发表于 2012-02-15 09:49

to 楼主:
code=$1,city=$2   这一句用分号啊或是换行 !怎么能用逗号。

to Sevk:不是Bug,是语言规范。

当一个赋值语句是:一个左值,多个右值的情况。Ruby会创建一个数组来容纳所有右值,并将这个左值赋给右值。
所以code=$1,city=$2的结果就是["6328", "海西"]。

to 楼主: 学Ruby打好基础很关键喔。推荐 松本行宏的 《The Ruby Pragramming Language》。你遇到的问题,这本书都讲到了。


页: [1]
查看完整版本: 匹配第二个数字和城市