Detlef, thanks for this clear expose of your code snippet. I have been avoiding similar constructs because I never could find the time to understand it and the docs I have access to are just not clear enough on this. Your code does some of the things I am doing in Perl, and it does it with much less effort.
Uli Wienands > ---------- > From: Detlef Lindenthal > Sent: Tuesday, September 24, 2002 16:03 > To: Georgia Citizen; [EMAIL PROTECTED] > Subject: Re: [MacPerl] Get text from X to Y in a string > > Tony wrote: > >>> I want to be able to grab a section of a string, starting at X and ending at Y. > > Detlef Lindenthal wrote: > > >> ## Grab the amount like this: > > >> $text = "The amount of the house is one hundred thousand dollars, and I cannot >afford that price."; > >> $X = "amount of the house is"; > >> $Y = ","; > > >> $text =~ m,$X(.*?)$Y,; > >> print $1; ## This prints: " one hundred thousand dollars" > > > Tony wrote: > > > I am not sure what the syntax is exactly, but it works great! > > > The regex' technic is not so difficult: > > $text contains your string > =~ means: apply some regex ("regular expression" = search pattern or search and >replace pattern) on it > m, ....... , means: what is between the two commata (or some other 2 characters) >shall be found (m stands for "match"). > $X and $Y are interpolatet; that means you could as well write > $text =~ m'amount of the house is(.*?),'; > .. means: any character except \n in this case > ..* means: any count of those characters from zero to infinite > ? means: as few as possible (= nongreedy search) > (.*?) means: capture everything within these parens and return it named $1. > > Learning is bliss. > > > >