--- 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/