Introducing non-greedy quantifiers......
use feature qw/say/; use strict; use warnings; my $string = "afdhauio af ad a reason one reason two 1 2 3's reason fo +r,reason7,reason8 ejroapjr"; $string =~ m/ (?:reason.*?){2} # Skip the first two reasons (reason.*) # Keep the third and all text after it. $ # To end of string. /x or die "No match.\n"; say $1;
Note: You said you want all the stuff after the third occurrence of 'reason', yet in the example of the output you are seeking, you showed that you wanted to keep the third occurrence of 'reason' as well as everything that comes after it. There's a difference, and I had to choose which solution to create. I chose the one that matches your example output.
Dave
In reply to Re: Obtain all the lines after the 3rd occurrance of the match
by davido
in thread Obtain all the lines after the 3rd occurrance of the match
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |