Re: Need help w/ reqexp, capture and substitue
- From: Shawn@xxxxxxxxxxxx (Shawn Milochik)
- Date: Sun, 29 Oct 2006 22:58:14 -0500
On Oct 29, 2006, at 7:56 PM, Dennis G. Wicks wrote:
Shawn Milochik wrote:This seems to work for me:
#!/usr/bin/perl -w
use strict;
while (<STDIN>) {
chomp;
print "Original: $_\n";
$_ =~ s/^([^@]+)(@.+&\d+&)([&]{5})/$1$2$1$3/;
print "Modified: $_\n";
}
Hope it helps.
Shawn
Thanks Shawn!
That works perfectly!
I just might get finished by Monday AM.
Now I just need to figure out how it works
so I don't beat my head against the desk so much
the next time I need to do something like this.
Regards,
Dennis
-
Dennis,
^([^@]+) = Take everything starting from the beginning of the line as long as it doesn't contain an @.
Literally: Match one or more characters if not the @ character. Thanks to "greedy matching," the fact that the next part of the regular expression begins with the @ means that you'll get every single character up to that @.
(@.+&\d+&) = From the @, take everything up until you hit an & followed by one or more digits, followed by another ampersand.
Literally: Match @, then any character (.) for one or more (+), then & then a digit (\d) one or more of them (+) then &.
([&]{5}) = Match exactly five & characters in a row.
Literally: Match exactly five & in a row.
In each case, the section is surrounded by parenthesis. These parenthesis allow you to refer to $1, $2, and $3 in the substitution. $1 is whatever is in the first set of parenthesis, and so on.
I very highly recommend "Mastering Regular Expressions" by Jeffrey Friedl. I think that's the best way to learn, and the book is very easy to follow. The third edition was just released.
Shawn
.
- References:
- Need help w/ reqexp, capture and substitue
- From: Dennis G. Wicks
- Re: Need help w/ reqexp, capture and substitue
- From: Shawn Milochik
- Re: Need help w/ reqexp, capture and substitue
- From: Dennis G. Wicks
- Need help w/ reqexp, capture and substitue
- Prev by Date: Re: Need help w/ reqexp, capture and substitue
- Next by Date: Simple calendar
- Previous by thread: Re: Need help w/ reqexp, capture and substitue
- Next by thread: Re: Need help w/ reqexp, capture and substitue
- Index(es):
Relevant Pages
|