匹配第二个数字和城市
本帖最后由 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", "海西"]
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:04 编辑
code=$1
city=$2分开行写就可以 ,我还以为是正则写错了呢 to 楼主:
code=$1,city=$2 这一句用分号啊或是换行 !怎么能用逗号。
to Sevk:不是Bug,是语言规范。
当一个赋值语句是:一个左值,多个右值的情况。Ruby会创建一个数组来容纳所有右值,并将这个左值赋给右值。
所以code=$1,city=$2的结果就是["6328", "海西"]。
to 楼主: 学Ruby打好基础很关键喔。推荐 松本行宏的 《The Ruby Pragramming Language》。你遇到的问题,这本书都讲到了。
页:
[1]