On 2/23/02 3:52 PM, Marc Morrison <[EMAIL PROTECTED]> wrote: > I have an online form that has a "Comments" field. I > need to extract ALL of the information from the > comments field. > > Each "Comments" line begins with Comment: so the > /^Comments/ works to match that, however the user may, > or may not enter a new line in their comments and they > may or may not start from the line where "Comments" is > written.
It would help if you could give us some sample data, but I think I know what you're talking about. Is it something along the lines of this? Comment: line 1 Comment: line 2 Comment: line 3 > Also there are no delimiting characters to search. > And one more problem is that they rarely end the > sentence with a period. The only good news is that > there are never more than 4 lines. But because there > is almost always a newline, I can't use: > > while <> > > because it searches line by line. > > I posted on line and got a very helpful response to > use: > > local $/ = undef; > > However I put this at the beginning of my script and > nothing matched. I am still using the while<>. Is > this what is messing it up? It might help if you posted the code you're using right now. I'm really not sure if this is right (sample data and code would help), but this might work: ##### START CODE ##### # assuming this is the kind of data you're talking about $comments = <<_COMMENTS_; Comment: line 1 Comment: line 2 Comment: line 3 _COMMENTS_ my $data; # run through each line and collect the data while ($comments =~ /^Comment: (.+)$/gm){ $data .= "$1\n"; } print "$data"; ##### END CODE ##### To examine the regex itself: /^Comment: (.+)$/gm The 'm' switch allows the ^ and $ to match at the beginning and end of lines, instead of the entire string, and the 'g' option allows global matching. The '(.+)' traps one or more of anything, and sets it to $1. NOTE: This regex assumes there's a space after the "Comment:". If you can't be sure that there will be either remove the space or replace it with " ?" (space-question mark; matches 0 or 1 spaces). That said, I may have totally misunderstood your problem. If so, just ignore this email :) Hope that helps, -- Michael -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]