false_friend has asked for the wisdom of the Perl Monks concerning the following question:
Dear Monks,
I am trying to do pattern matching, but can’t get the results I am looking for. Here is a very reduced example of what I am trying to do:
My search string is The quick brown fox jumps over the lazy dog, and I am trying to match the lazy dog, but my problem is that I only have limited information about the snipped that I am interested in; I only know the first word (the) and the last word (dog). I tried to accomplish this with a simple lazy regular expression:
#!/usr/bin/perl -w use strict; my $string = "The quick brown fox jumps over the lazy dog"; $string =~ /(the .*? dog)/i; print "Match: '", $1, "'";
But this gives me
Match: 'The quick brown fox jumps over the lazy dog'
instead of the desired
Match: 'the lazy dog'
Is there an elegant way of matching in the ‘laziest’ way (in the sense that a three-word match is lazier than matching the whole string)?
Thank you for you help,
Benedikt
|
|---|