Артем Аветисян wrote:
> Hello, Perl Users.
>
> I have:
> ...
> $string =<<'EOS';
> Returns the offset of where the last m//g search left off for the variable in
> question
> ($_ is used when the variable is not specified). Note that 0 is a valid match
> offset,
> while undef indicates that the search position is reset (usually due to match
> failure,
> but can also be because no match has yet been performed on the scalar). pos
> directly
> accesses the location used by the regexp engine to store the offset, so
> assigning to pos
> will change that offset, and so will also influence the \G zero-width
> assertion in regular expressions.
> Because a failed m//gc match doesn't reset the offset, the return from pos
> won't change either in this case.
> See the perlre manpage and the perlop manpage.
> EOS
>
> $string =~ /o.{2}(s)(et)/g;
> ...
>
> this matches 5 times 'offset' word. I know - i counted ;) But there is a need
> to get this fact in the programm. So far, i can do
>
> @res = ($string =~ /o.{2}(s)(et)/g);
>
> which gives me only captured subpatterns (as long as there are any),
>
> or i can play with @+ @- with the same restriction - only captured items.
>
> But i don't see the way to get all mathces (without having $string cycled).
> Secong issue - to get them with their positions.
my @res = $string =~ /(o.{2}set)/g;
print scalar @res, "\n";
or using substitute:
my $res = $string =~ s/(o.{2}set)/$1/g;
print "$res\n";
_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs