SPUG: regular expression question
Ryan T. Kosai
rkosai at u.washington.edu
Mon Nov 14 23:07:12 PST 2005
Here's an alternative regex that does what I think you might actually want:
#This one catches escaped # signs
# Briefly, Capture anything other than a #, OR capture a # if there's
# a \ behind it
$line =~ /^(([^#]|(?:(?<=\\)[#]))*)/;
print "$1\n";
Thanks,
Ryan T. Kosai, Undergraduate rkosai at u.washington.edu
Molecular Biology/Electrical Engr. //students.washington.edu/rkosai
Charles Connolly wrote:
> Hi,
> I'm having some trouble with a regular expression, and I thought I'd toss
> it out to the list, especially since it seems quiet here lately.
> I'd like to process a file line by line, capturing the everything from the
> start of the line to a hash mark (#), which would indicate a comment. Here are
> some things I tried:
>
> my $line =~ /^(.*)\#?/; # this takes the entire line, as expected.
>
> my $line =~ /^(.*?)\#?/; # this works if there is a comment, but not if there
> isn't. If there isn't a comment it captures the shortest match, which is
> nothing.
>
> All suggestions are welcomed.
>
> Thanks,
>
> Chuck
>
> _____________________________________________________________
> Seattle Perl Users Group Mailing List
> POST TO: spug-list at pm.org
> SUBSCRIPTION: http://mail.pm.org/mailman/listinfo/spug-list
> MEETINGS: 3rd Tuesdays, Location: Amazon.com Pac-Med
> WEB PAGE: http://seattleperl.org/
More information about the spug-list
mailing list