作者ireullin (raison detre)
看板Ruby
标题[问题] 请问在正规表达法中使用中文
时间Thu Aug 23 16:06:18 2012
请问一下各位
小弟使用的是ruby 1.91 作业系统是win7
下列是我的程式码
如果我使用include? 去过滤字串是可以成功的
可是如果使用正规表达法就会出现invalid multibyte char的问题
请问这个问题该如何处理呢
#encoding: big5
_reader = File.new('BS.LOG','r')
_writer = File.new('rc.txt','w')
_reader.each do |line|
#if(line =~ /开始读取/ ) # 这样写就会出错
if(line.include?('开始读取') )
_writer.puts line
end
end
_writer.close
_reader.close
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.250.130.211
1F:推 mars90226:我没有耶...奇怪? 08/23 16:14
2F:→ mars90226:我测试 s = "测试字串"; re = /字/; puts s =~ re #=>2 08/23 16:18
3F:→ mars90226:我也有加#encoding:big5,不过我是用1.9.3 08/23 16:18
4F:→ mars90226:另外说,开档用block比较好看(?) 08/23 16:19
5F:→ ireullin:请问block是? 08/23 16:21
6F:推 cation234:就是do end或是 {} 08/23 19:47
8F:→ ireullin:我个人是比较习惯看do-end 08/24 10:25
9F:→ ireullin:不知这在实际执行上是否有差别 08/24 10:25
10F:推 j0214ack:把encoding换成utf8看看? 08/24 12:37
12F:→ ireullin:我试过了还是不行 08/24 17:22
13F:→ ireullin:我程式码的文档本身也有转成utf-8 08/24 17:23