[Ruby] //g

Olonichev Sergei olonichev at scnsoft.com
Wed Oct 9 11:52:05 MSD 2002


s = "var one 23 vaar two 4 who and var 17 ozzy where var 9"

l = s.length
s.gsub(/va+r/) { |match|

 puts "#{match.to_s} offset:'#{l - $'.length - match.length}', length:
#{match.length}"
}


----- Original Message -----
From: "Ilya Palagin" <tux at fioc.kz>
To: <ruby at altlinux.ru>
Sent: 9 октября 2002 г. 8:57
Subject: [Ruby] //g


> Неужто в рубиновом regexp не сделали опцию g (глобальный поиск)?
> В перловом regexp это часто используется для поиска n-го совпадения
> или подсчета количества совпадений.
>
> Например, мне нужно найти подстроку, находящуюся перед третьим
> вхождением "var",
> в perl я бы это сделал так:
> $string = "var one 23 var two 4 who and var 17 ozzy where var 9";
> $count = 0;
> while($string =~ /var/g) {
> print $` . "\n" if ($count++ == 2);
> }
>
> Можно ли сделать то же самое средствами regexp в ruby, не раскладывая
> строку на составляющие для подсчета кол-ва вохждений?
>
> Спасибо.
>
> _______________________________________________
> Ruby mailing list
> Ruby at altlinux.ru
> http://www.altlinux.ru/mailman/listinfo/ruby




More information about the Ruby mailing list