--- Arie Kusuma Atmaja <[EMAIL PROTECTED]> wrote: > ide bagus, fyi kalau saya pribadi lebih suka kalau ketika seorang pemula > sedang > mempelajari hal hal baru biasanya langsung dipraktekkan dengan begitu banyak > rupa > macam catatan maupun coretan-coretan sebagai pendukung proses belajar. nah > jika itu > semua bisa dishare dengan cara-cara apapun juga seperti kalau ditulis di > komputer > berarti bisa dishare di blog masing2x, kalau difoto karena coret-coretan ada
atas petunjuk bapak presiden, saya coba share kepekan saya mengenai global match. di-share di sini aja berhubung sama seperti roy suryo, saya ngga punya blog :-) regex di perl support global match modifier atau /g. ruby regex nampaknya tidak support ini. "so what the heck is /g ??" you ask. ok some background (dari man perlretut): $x = "cat dog house"; # 3 words $x =~ /^\s*(\w+)\s+(\w+)\s+(\w+)\s*$/; # captures cat, dog, house in $1. $2, $3 tapi bagaimana kalau jumlah words di dalam $x tidak fixed 3? di sinilah gunanya /g: while ($x =~ /(\w+)/g) { print "Word is $1\n"; } kita coba dng ruby: irb(main):001:0> "foo bar baz" =~ /(\w+)/g SyntaxError: compile error (irb):1: unknown regexp option - g from (irb):1 blech.. doesn't look good.. tapi..: texts = ['foo bar baz quux', 'cat dog house'] re = /(\w+)/ texts.each do |txt| words = [] re.global_match(txt) do |m| words.push(m[0]) end p words end "eits! dari mana itu .global_match??" you ask again. sabar: class Regexp def global_match(str, &proc) loop do res = str.sub(self) do |m| proc.call($~) # pass MatchData obj '' end break if res == str str = res end end end rgds, Edwin. ________________________________________________________ Bergabunglah dengan orang-orang yang berwawasan, di di bidang Anda! Kunjungi Yahoo! Answers saat ini juga di http://id.answers.yahoo.com/