[問題] 關於 Big5 與 regexp
環境:
Ruby 1.8.7
狀況:
輸入:一個 Big5 的純文字檔 input.txt
裏面的內容只有四個字:
東吳大學
操作:開檔,讀內容,判斷它是否 match /^[\d\w]{8}$/
預期結果: nil
實際結果:因 $KCODE 而異 (!?)
在 $KCODE='u' 的時候會 match 到
\d\w 不是只會 match 到英文字母和數字嗎?
想請問大家為甚麼會這樣 :( 感謝
附錄:
程式:
#!/usr/bin/ruby -w
$KCODE='u' # 這一行註解與否會影響到正規表示法的 match
File.open("input.txt", "r").each_line do |l|
if l.chomp.match(/^[\d\w]{8}$/)
puts "matched"
end
end
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.166.137
※ 編輯: ducksteven 來自: 140.122.166.137 (04/15 03:35)
→
04/15 07:23, , 1F
04/15 07:23, 1F
→
04/15 11:35, , 2F
04/15 11:35, 2F
→
04/15 13:09, , 3F
04/15 13:09, 3F
→
04/15 13:41, , 4F
04/15 13:41, 4F
→
04/15 22:02, , 5F
04/15 22:02, 5F
→
04/15 22:41, , 6F
04/15 22:41, 6F
→
04/15 22:41, , 7F
04/15 22:41, 7F
→
04/15 23:43, , 8F
04/15 23:43, 8F
→
04/16 02:00, , 9F
04/16 02:00, 9F
→
04/16 03:01, , 10F
04/16 03:01, 10F
→
04/16 10:50, , 11F
04/16 10:50, 11F
→
04/16 10:50, , 12F
04/16 10:50, 12F
→
04/16 18:02, , 13F
04/16 18:02, 13F
→
04/16 20:38, , 14F
04/16 20:38, 14F