Артем Аветисян 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

Reply via email to