ruby内嵌表达式
可以用#{}内嵌表达式,如:
- ruby> var = “ abc ”
- “ abc ”
- ruby> “1234#{var}5678″
- “1234 abc 5678″
可以用#{}内嵌表达式,如:
1. eLance
http://www.elance.com/
2. Guru
http://www.guru.com/
3. RentACoder
http://www.rentacoder.com/
4. GetAFreelancer
http://www.getafreelancer.com/
5. ScriptLance
http://www.scriptlance.com/
含中文字符的url是一些乱码,如中文”个”,在url中表示为”%b8%f6″。有时需要进行url解码和编码,两个函数如下:
def URLDecode(str)
str.gsub!(/%[a-fA-F0-9]{2}/) { |x| x = x[1..2].hex.chr }
end
def URLEncode(str)
str.gsub!(/[^\w$&\-+.,\/:;=?@]/) { |x| x = format(“%%%x“, x[0]) }
end
有的时候需要给ruby程序以及ruby待操作的文件以完整的路径,举例说明吧:
在g:\ding\anpc\163_anpc.rb程序中有如下代码:
3.times {
load ‘..\anpc\data_163.rb’
load ‘..\bin\bin_163.rb’
}
如果在g:\ding\anpc\ 下执行163_anpc.rb, 程序可以正常运行,但如果在别的路径,比如c:\,执行g:\ding\anpc\163_anpc.rb,程序就会报错,说找不到data_163.rb和bin_163.rb。
解决问题的方法是给ruby程序以完整的路径,如下所示:
3.times {
load File.join(File.dirname(__FILE__), ‘data_163.rb’)
load File.join(File.dirname(__FILE__), ‘../bin/bin_163.rb’)
}
类似的例子:
在g:\ding\anpc\data_163.rb程序中有如下代码:
#初始化user
users = []
File.open(‘user_163_anpc.txt’) do |f|
f.each_line do |line|
words = line.split(‘ ‘)
users << {:user => words[0], :password => words[1]}
end
end
该程序在g:\ding\anpc\ 下执行data_163.rb, 文件操作正常,但如果在别的路径,比如c:\,执行g:\ding\anpc\data_163.rb,程序就会报错,说找不到文件user_163_anpc.txt。
解决问题的方法是给待操作的文件以完整的路径,如下所示:
#初始化user
users = []
users_filename = File.join(File.dirname(__FILE__), ‘user_sina_anpc.txt’)
File.open(users_filename) do |f|
f.each_line do |line|
words = line.split(‘ ‘)
users << {:user => words[0], :password => words[1]}
end
end
本文原创于:http://www.sdgz.cn
Ruby的字符处理能力是比较强大的,以下是我利用ruby处理汉字字符时摸索出的几个实例:
删除:
char = “查看位置 某路某小区”
char = char.delete(‘查看位置’)
其中char来源于网页,有的时候会显示乱码,可能是网页和文本编辑器的编码不一样造成的。
这时可以使用:
char = char[8 .. 996]
截取:
char = “3室2厅1厨1卫2阳台”
想截取“3室”中的“3”、“2厅”中的“2”和“1卫”中的“1”
char_1 = char[0,1]
char_4 = char[3,1]
char_10 = char[9,1]
匹配:
if (char_1 =~ /3/) && (char_4 =~ /2/) && (char_10 =~ /1/)
ie152.radio(:id, /3室2厅1卫/).set
end
本文原创于 http://www.sdgz.cn,转摘请注明出处。
ruby添加字符串到文件比较tricky,我用的代码如下:
file = File.open(“test.txt”, “a”)
ie111.image(:class => /xyz/, :index => 1).click
html1 = ie111.text_field(:id, “html_box”).value
file << html1
file.close
最新评论